Pythagoras tre

Det pythagoreiske treet er en flat fraktal konstruert ved hjelp av firkanter . Det kalles Pythagoras fordi hver triplett av firkanter i kontakt omslutter en høyre trekant , en konfigurasjon som tradisjonelt brukes til å illustrere Pythagoras teorem .

Treet

Konstruksjon

Byggingen av det pythagoreiske treet begynner med en enkel firkant . På denne firkanten er det bygget to kvadrater til, hver side er mindre med en faktor ½√2 sammenlignet med kvadratet i forrige trinn, slik at kvadratene i kvadratene er i kontakt. Fremgangsmåten brukes rekursivt på hvert kvadrat, opp til uendelig. Illustrasjonen nedenfor illustrerer de første gjentakelsene av konstruksjonen.

Bygging av det pythagoreiske treet, ordre 1 Bestilling 2 Bestilling 3 Bestilling 4
Bestill 0 Bestilling 1 Bestilling 2 Bestilling 3

Kode for bygging av det klassiske Pythagoras-treet ved rekursjon

De koordinater er i abscissen, ordinat skjema .


A = (X1 + X2) / 2 - (Y2 - (Y2 + Y1) /2) B = (Y1 + Y2) / 2 + (X2 - (X2 + X1) /2) C = X1- (B - Y1) D = Y1 + (A - X1) E = A - (B - Y1) F = B + (A - X1) G = A - (Y2 - B) H = B + (X2 - A) I = X2 - (Y2 - B) J = Y2 + (X2 - A)

Det er nok å kjenne X1, Y1, X2 og Y2 for å kunne beregne de andre.

I neste iterasjon vil vi utføre disse beregningene to ganger: første gang med (X1, Y1, X2, Y2) = (C, D, E, F) og den andre med (X1, Y1, X2, Y2) = ( G, H, I, J).

Område

Den n- te iterasjon tilfører 2 n kvadratene av side (½√2) n , for et totalt område av 1. Således, det totale arealet av treet synes a priori for å tendere mot uendelig. Imidlertid er noen av rutene lagret fra 5 th  iterasjon, har skaftet således et begrenset område og passer inn i et rektangel med 6 x 4 cm.

Variasjoner

Ved å holde begrensningen for å danne en rett trekant fra tre firkanter, men gi forskjellige størrelser til hver av rutene som er lagt til i hver iterasjon, er det mulig å lage fraktale former som ligner på det pythagoriske treet. Illustrasjonen nedenfor illustrerer en slik variasjon

Bestill 0 Bestilling 1 Bestilling 2 Bestilling 5
Bestill 0 Bestilling 1 Bestilling 2 Bestilling 5

Kode for bygging av det pythagoreiske treet med forskjellige vinkler enn 45 °

α (alfa) er vinkelen gitt i starten, den varierer aldri. Trekanten er fremdeles rektangel, men mer likbenede rektangel som den var i den klassiske formen til det pythagoranske treet, med alfa = 45 °.

β (beta) er vinkelen som ligger mellom segmentet [X1Y1X2Y2] og det horisontale, her representert av den blå linjen.

H er skjæringspunktet for linjen (X1Y1X2Y2) og høyden h fra AB. Bare navnet på punktet er gitt fordi vi ikke vil beregne koordinatene.

HX1Y1 er avstanden mellom koordinatpunktet (X1, Y1) og H-punktet.

ABX1Y1 er avstanden mellom koordinatpunktet (A, B) og koordinatpunktet (X1, Y1).

Pseudokode

# On peut utiliser les nombres complexes pour calculer beta # j le nombre complexe angle beta = argument du nombre complexe X2 + Y2j - (X1 + Y1j) distance HX1Y1 = distance X1Y1X2Y2 * cosinus(alpha°)² # voir démonstration plus bas distance ABX1Y1 = HX1Y1 / cosinus(alpha°) #simple théorème de Pythagore A = X1 + ABX1Y1 * cos(alpha + beta) # théorème de Pythagore avec le triangle rectangle qui a pour hypoténuse ABX1Y1 et dont un des côtés adjacents est situé sur l'horizontale (sur le trait bleu), et l'autre est donc situé sur la verticale. B = Y1 + ABX1Y1 * sin(alpha + beta) # même raisonnement C = X1 - (B - Y1) D = Y1 + (A - X1) E = A - (B - Y1) F = B + (A - X1) G = A - (Y2 - B) H = B + (X2 - A) I = X2 - (Y2 - B) J = Y2 + (X2 - A)

HX1Y1 demonstrasjon

{tpåikke(α)=PÅBH/HX1Y1tpåikke(90-α)=PÅBH/HX2Y2⟺{tpåikke(α)=PÅBH/HX1Y1tpåikke(90-α)=PÅBH/(X1Y1X2Y2-HX1Y1)⟺{PÅBH=tpåikke(α)∗HX1Y1PÅBH=tpåikke(90-α)∗(X1Y1X2Y2-HX1Y1)⟺tpåikke(α)∗HX1Y1=tpåikke(90-α)∗(X1Y1X2Y2-HX1Y1)⟺tpåikke(α)∗HX1Y1+tpåikke(90-α)∗HX1Y1=tpåikke(90-α)∗X1Y1X2Y2⟺(tpåikke(α)+tpåikke(90-α))∗HX1Y1=tpåikke(90-α)∗X1Y1X2Y2⟺HX1Y1=(tpåikke(90-α)∗X1Y1X2Y2)/(tpåikke(α)+tpåikke(90-α))⟺HX1Y1=X1Y1X2Y2∗cos⁡(α)2{\ displaystyle {\ begin {cases} tan (\ alpha) = ABH / HX1Y1 \\ tan (90- \ alpha) = ABH / HX2Y2 \ end {cases}} \ Longleftrightarrow {\ begin {cases} tan (\ alpha) = ABH / HX1Y1 \\ tan (90- \ alpha) = ABH / (X1Y1X2Y2-HX1Y1) \ end {cases}} \ Longleftrightarrow {\ begin {cases} ABH = tan (\ alpha) * HX1Y1 \\ ABH = tan ( 90- \ alpha) * (X1Y1X2Y2-HX1Y1) \ end {cases}} \ Longleftrightarrow tan (\ alpha) * HX1Y1 = tan (90- \ alpha) * (X1Y1X2Y2-HX1Y1) \ Longleftrightarrow tan (\ alpha) * HX1Y1 + tan (90- \ alpha) * HX1Y1 = tan (90- \ alpha) * X1Y1X2Y2 \ Longleftrightarrow (tan (\ alpha) + tan (90- \ alpha)) * HX1Y1 = tan (90- \ alpha) * X1Y1X2Y2 \ Longleftrightarrow HX1Y1 = (tan (90- \ alpha) * X1Y1X2Y2) / (tan (\ alpha) + tan (90- \ alpha)) \ Longleftrightarrow HX1Y1 = X1Y1X2Y2 * \ cos (\ alpha) ^ {2}}

Kode i Python 3

Python fungerer med radianer , så 90 grader = pi / 2 radianer

from math import sqrt, cos, sin, tan, pi from cmath import phase beta = phase(X2 + Y2 * 1j - (X1 + Y1 * 1j)) HX1Y1 = sqrt((Y2 - Y1)**2 + (X2 - X1)**2) * cos(alpha)**2 ABX1Y1 = HX1Y1 / cos(alpha) A = X1 + ABX1Y1 * cos(alpha + beta) B = Y1 + ABX1Y1 * sin(alpha + beta) C = X1 - (B - Y1) D = Y1 + (A - X1) E = A - (B - Y1) F = B + (A - X1) G = A - (Y2 - B) H = B + (X2 - A) I = X2 - (Y2 - B) J = Y2 + (X2 - A)

Se også

Eksterne linker

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">