Vijfhoeken en de Gulden Snede.

Vlakvullingen

Met regelmatige driehoeken, vierkanten en zeshoeken kan je een vlak volledig vullen. We hebben allemaal wel dit soort figuren gezien. In het geval van vlakvulling met regelmatige driehoeken kan je de figuur opgebouwd denken uit een lijnenpatroon met regelmatige afstanden. Als je dat resp. 120º en 240º draait krijg je het lijnenpatroon waaruit de figuur opgebouwd is. Iedere zijde van de regelmatige driehoek ligt op een lijn. Met vierkanten is het eenvoudiger. Je hebt gewoon aan twee lijnenpatronen genoeg. Deze moeten onderling 90º gedraaid zijn. Voor het lijnenpatroon voor zeshoeken maak je gebruik van hetzelfde patroon als voor de driehoeken.

Fig. 1. Vlakvulling met driehoeken Fig. 2. Vlakvulling met vierkanten. Fig. 3. Vlakvulling met zeshoeken.

.

Vijfhoek en vlakvulling?

Lukt dit met regelmatige vijfhoeken ook? Ja en nee. Je kan met regelmatige vijfhoeken niet een vlak volledig vullen. Maar je kan wel veel vijfhoeken vinden in een lijnenpatroon dat volgens het eerder genoemde systeem opgebouwd is. Je hebt wel wat aanpassingen nodig. De lijnenpatronen zijn hier 72º ten opzichte van elkaar gedraaid zoals te verwachten was. Het grote verschil zit in het feit dat afstanden tussen de lijnen onderling hier niet constant zijn. Zie fig. 4. De afstand tussen twee lijnen kan "groot" of "klein", en de verhouding tussen deze afstanden is φ. φ is de zogenaamde Gulden Snede. Zie kader 1. De lijnafstanden wisselen ook niet regelmatig tussen "klein" en "groot". Het aantal keren dat de "grote" lijnafstand voorkomt gedeeld door het aantal keren dat de "kleine" lijnafstand voorkomt is φ (of beter: nadert naar φ). En aangezien φ geen element van N, Z of Q is, kan er van een regelmaat in de verdeling van "grote" en "kleine" lijnafstanden geen sprake zijn.

Fig. 4. Lijnenpatroon van vlakvulling met vijfhoeken. De normaal van dit lijnenpatroon heeft een hoek van 0º Fig. 5. Lijnenpatroon als in figuur 4, maar nu ook 72º, 144º, 216º, 288º gedraaid. Fig. 6. Vijfhoeken getekend in het lijnenpatroon. Merk op dat iedere in blauw getekende vijfhoek een ingeschreven ster heeft

Vijfhoeken in het lijnenpatroon.

We hebben nu wel het lijnenpatroon gedefinieerd, maar hoe vinden we nu de vijfhoeken hierin.?Je kan natuurlijk een computer programma schrijven en dit nauwkeurig laten uitrekenen waar de snijpunten van de lijnen liggen, en controleren of deze een vijfhoek vormen. Voor een beetje wiskundige is dit weinig bevredigend. Die wil iets niet nauwkeurig weten, maar exact. En in dit geval kan dat ook. Als je alles netjes gedefinieerd hebt, blijkt dat je de afstand van de lijnen die de vijfhoek vormen (de zijden van de vijfhoek vormen een deel van de lijnen van de vijfhoek) tot de oorsprong kunt schijven in een geheel aantal eenheden en een geheel aantal keren φ. Dit maakt het rekenen en vergelijken exact, en voor de computer ook veel sneller. Hoe je zo kunt rekenen staat in kader 2.

 

De reeks voor de lijnafstanden.

Van de reeks voor de lijnafstanden heb ik al iets verteld. Namelijk dat het aantal keren dat er een "grote" afstand in voorkomt gedeeld door het aantal keren dat er een "kleine" afstand in voorkomt gelijk is aan φ. Je kunt nu een reeks maken van G's (= Grote afstanden), en K's (= Kleine afstanden) door heel dicht bij deze constatering te blijven. Je bepaalt de verhouding ng = aantal G's, en nk = aantal K's, is deze groter dan φ, dan voeg je een K toe, en verhoog je nk, anders voeg je een G toe, en verhoog je ng.

Algoritme:
  Reeks := "G"
  index =1;
  nk = 0;
  ng = 1;
  REPEAT
    IF (ng>nk*φ) THEN 
      Reeks[ index] := "K";
      nk = nk+1;
    ELSE
      Reeks[ index] := "G";
      ng = ng+1;
    END;
    index := index+1;
  UNTIL (index >= MaxIndex);
Je krijgt dan een reeks die er als volgt uitziet:
GKGKGGKGKGGKGGKGKGGKGKGGKGGKGKGGKGGKGKGGKGKGGKGGK...

Opbouw van de figuur met vijfhoeken.

Voor de opbouw van de figuur begin je met een normaal van 0º, vanuit een startpositie (zie figuur 7) lijnen loodrecht op de normaal te trekken. De afstanden tussen deze lijnen variëren tussen "groot" (="G" = φ+2) en "klein" (="K" = 2φ-1 ). De startpositie moet je uitdrukken in een geheel getal en een geheel getal maal φ. Dus startpositie s = n +mφ, met n, m een geheel getal. Dit systeem herhaal je voor een normaal van 72º, 144º enz. Bij deze opbouw vind je veel vijfhoeken met ingeschreven ster als m/n ≈ φ. Voor iedere waarde van n zijn er 4 of 5 opeenvolgende waarden voor m die vijfhoeken in de figuur opleveren. Dus voor veruit de meeste waarden van m zal je geen vijfhoeken in de figuur vinden.

Fig. 7. De startpositie van het lijnenpatroon.

Hetzelfde lijnenpatroon is steeds 72º gedraaid.

Voor de duidelijkheid zijn nu maar een paar lijnen getekend.

Met het te downloaden programma kan je de startpositie (de waarde voor n en m) variëren. Het programma zoekt alleen vijfhoeken met ingeschreven ster. Als je dit laatste criterium weglaat zal je veel elkaar overlappende vijfhoeken vinden. Het programma vindt de vijfhoeken op de volgende manier. Bij ieder snijpunt van een tweetal lijnen kan worden bepaald waar de eventuele vijfhoeken liggen. Als je de zijden van deze vijfhoek bepaald hebt kijk je of deze op de lijnen van het lijnenpatroon liggen. De afstanden van de zijden van deze vijfhoek tot de oorsprong zijn te schrijven als een geheel aantal keren φ en een geheel getal, evenals de lijnafstanden van het lijnenpatroon. Dit maakt het vergelijken heel eenvoudig en nauwkeurig.

Zelfgelijkvormigheid en vijfhoeken.

Als je goed kijkt naar de figuren 8 en 9 zie je dat hetzelfde lijnenpatroon grotere versies van de "vijfhoeken met ingeschreven ster" herbergt. Dit was enigszins te verwachten daar de grote en kleine afstanden tussen de lijnen zich verhouden als φ, en het aantal lijnen met een grote afstand en het aantal met kleine afstand zich ook verhoudt als φ. Je kan als het ware een grotere orde definiëren door te stellen G1 = G0+K0; K1 = G0; Met G0 als grote afstand (=φ), en K0 als kleine afstand (=1): G1 =1+φ; K1 = φ; G0/K0 = G1/K1 = φ; De verhoudingen tussen de aantallen G's en K's blijven gelijk.

Fig. 8. Lijnenpatroon met kleine vijfhoeken Fig. 9. Hetzelfde lijnenpatroon als in fig. 8 maar nu met grote vijfhoeken.

Dit valt ook uit de G en K reeks af te leiden. Wanneer je uit deze reeks een "G" vervangt door een "K", en een "KG" door een "G" krijg je weer dezelfde reeks. Alleen de eerste twee elementen uit de reeks zijn een uitzondering. Je kan ook het omgekeerde doen: als je een "K" tegenkomt voeg je een "G" toe aan de reeks, en als je een "G" tegenkomt voeg je "KG" toe. Met dit gegeven kan je de reeks dus uit zichzelf afleiden.

Algoritme:
  Reeks := "GK";
  index := 1;
  Lengte :=2;
  REPEAT
    IF (Reeks[ index] = "K") THEN
      Voegtoe( Reeks, "G");
      Lengte := Lengte +1;
    ELSE
      Voegtoe( Reeks, "KG");
      Lengte := Lengte +2;
    END;
    index := index + 1;
  UNTIL (Lengte >= MaxIndex);

Dit algoritme lijkt op de Turing machine. Het levert precies dezelfde reeks op als het eerder beschreven systeem. Het verschijnsel heet zelfgelijkvormigheid: vergroting (of verkleining) levert hetzelfde resultaat op. Zie Kader 3.

 

Kader 1. De Gulden Snede.

De Gulden Snede is de verhouding waarvoor geldt:

     grote lengte     grote + kleine lengte
φ = -------------- = -----------------------
     kleine lengte        grote lengte

Het is een veel gebruikte verhouding in de kunst omdat het een mooie vlakverdeling geeft, en het getal was bij de Oude Grieken al bekend. Uit de definitie valt af te leiden dat φ = ½*(1+√5). Verder geldt: 1/φ = φ-1 ; φ² = φ+1 cos( 36º) = φ/2; cos( 72º) = 1/(2φ) En voor de liefhebbers: 2*sinh( ln( φ) ) = 1. φ is ook de limiet van twee opeen volgende elementen van de reeks van Fibonacci: F( n+1) = F(n) + F(n-1): 1, 1, 2, 3, 5, 8, 13...

φ = limiet (F(n+1)/F(n)) met n nadert naar oneindig. Een andere manier om de reeks van Fibonacci en φ met elkaar te verbinden is voortdurend delen door φ: 1/φ = φ-1; (φ-1)/φ = 2-φ; (2-φ)/φ = 2φ-3 ... = F( n)φ - F(n+1). Deze reeks moet naar nul convergeren omdat je voortdurend deelt door getal groter dan 1.

 

Kader 2. Rekenen met de Gulden Snede.

Je kan met de Gulden Snede rekenen op een manier die lijkt op het rekenen met complexe getallen. In het geval van complexe getallen heb je een reëel en imaginair deel, in het geval van rekenen met de Gulden Snede heb je een geheel aantal keren een eenheid, en een geheel aantal keren φ.

Gegeven: Z = n + m* φ.

Optellen: Z1 + Z2 = (n1+n2) + (m1+m2)*φ.

Vermenigvuldigen: Z1 * Z2 = (n1*n2 +m1*m2) + (n1*m2 + n2*m1 + m1*m2)*φ.

Ook als je door φ deelt blijft het resultaat een geheel getal: Z/φ = (n-m) + m*φ. Bij het meer algemene geval is dat niet zo:

Delen:

       (n+m) - m* φ
1/Z = --------------
      (n² + n*m -m²)

Dit laatste levert in het algemeen geen geheel getal op natuurlijk, maar een element van Q.

Kader 3. Zelfgelijkvormigheid.

Zelfgelijkvormigheid is het verschijnsel dat een vergroting (of verkleining) het figuur niet verandert.
Bijvoorbeeld het volgende figuur: Fig. 10.

Fig. 10. Zelfgelijkvormigheid. De figuur verandert niet als

het met een factor 2 wordt vergroot of verkleind.

 

Maten in een regelmatige vijfhoek.

L = 2*R*sin(36º)        B = R*cos(72º) 
H = R*cos( 36º)         K = R-B= R*(1-cos(72º) ) 
G = H + B = R*(cos(36º)+cos(72º))
cos( 36º) = φ/2         cos( 72º) = 1/(2φ)
== >
B =R/(2φ)
K= R*(1-1/(2φ)) = R*(1-½*(φ-1) ) = ½*R*(3-φ)
G= ½*R*( φ+1/φ) = ½*R*(1+ 2φ)
Met R = 2φ:
B = 1
K = -1+2φ
G = 2 + φ
Het te downloaden programma varieert de startpositie met stappen van 1 en φ.

cos( 36º) = φ/2 is het eenvoudigst te bewijzen met cos(2*36º+½*36º)=0
==> cos(2*36º)*cos(½*36º)=sin(2*36º)*sin(½*36º) 
==> (2*cos(36º)^2-1)*cos(½*36º)=2*sin(36º)*cos(36º)*sin(½*36º)

 


Nieuwste Pentagon Programma met gradient

Het nieuwste programma heeft een veel betere gebruikers interface voor kleuren en transparantie en het kan gradienten tekenen. Ook kan het zelf kleuren en offsets kiezen. Het programma zelf heeft een hulp text. De data files (*.dat) bevatten de gegevens om de plaatjes te maken. Het zijn leesbare tekst files. Ze kunnen door het programma gelezen worden via sleur en pleur en via een menu item. Deze versie (nov-15) kan ook Pov-Ray tekst afleveren. Hiervoor is wel nodig dat je Pov-Ray (een gratis te downloaden programma) op je computer hebt. Een voorbeeld van het resultaat is hieronder te zien. In aug '16 is Jpeg ondersteuning aan het Pentagon Programma toegevoegd.

Download pentagon-grad.exe

Meer plaatjes

Een paar voorbeelden:

Download Pentagon data file Pentagon10-grad.dat

Voorbeeld Pov-Ray uitvoer dit alles met standaard instellingen. Je heb wel nodig dat je Pov-Ray op je computer hebt.

Download Pentagon data file Pentagon7-grad.dat

Download Pentagon data file Pentagon13-grad.dat


 

Oudere versie van het Pentagon Programma

Programma help tekst. (HTML)

 

Programma help tekst. (RTF)

 

Versie 2.1 beschikbaar. Deze versie kan ook dichte pentagons tekenen.

 

Download Pentagon.exe

Wat voorbeelden: