Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdCecilia Dekker Laatst gewijzigd meer dan 9 jaar geleden
2
Presentatie titel Rotterdam, 00 januari 2007 Computer Graphics Technische Informatica www.hogeschool-rotterdam.nl/cmi
3
Les 6 Les 6 gaat over Fractals
4
Inleiding fractal Vele objecten zijn niet vloeiend, maar hebben onregelmatige of gefragmenteerde vormen Zulke objecten kunnen getekend worden met Fractal meetkunde die is ontwikkeld door Mandelbrot (1924-2010) http://tweakers.net/nieuws/70259/wiskundige- benoit-mandelbrot-is-overleden.htmlhttp://tweakers.net/nieuws/70259/wiskundige- benoit-mandelbrot-is-overleden.html Fractals worden beschreven als meetkundige figuren, die niet met Euclidische meetkunde kan worden gepresenteerd Een fractal kromme kan niet 1-dimensionaal worden gepresenteerd
5
Inleiding fractal En een fractaal oppervlakte is niet 2 dimensionaal Fractale vormen hebben een fractale dimensie (1/2,1/4,1/8… enz) Vloeiende krommen zijn 1 dimensionale objecten met lengte gedefinieerd tussen 2 punten Een fractale kromme bevat oneindige details op ieder punt van de kromme De lengte is niet te bepalen Steeds als we inzoomen in de details wordt de lengte groter en groter (zie fig 10-24)
6
Inleiding fractal Krommen in een 2-dimensionaal systeem worden beschreven met fractale dimensies tussen 1 en 2
7
Regelmatige fractal Een fractale kromme wordt gegenereerd door herhaaldelijk een specifieke transformatie-functie toe te passen op punten binnen een gebied Het aantal details hangt af van : 1.aantal iteraties 2.resolutie van display Als P 0 =(x,y) een beginpunt is danwordt de transformatie: P 1 = F(P 0 ) P 2 = F(P 1 ) P 3 = F(P 2 ) … enz De transformatiefunctie wordt verschillend gespecificeerd om regelmatige of willekeurige variaties te verkrijgen.
8
Regelmatige fractal Zie fig 10-25 voor een regelmatige fractal
9
Regelmatige fractal We beginnen met een kromme met 2 lijnsegmenten Als eerste wordt het patroon van de orginele kromme met een factor 1/3 gereduceerd Dit gereduceerd patroon vervangt het middelste gedeelte (1/3) van de orginele kromme
10
Regelmatige fractal Hierna wordt het patroon weer met1/3 gereduceerd, enz..
11
Regelmatige fractal Bij iedere stap wordt het aantal lijnen vergroot met een factor 4 16, 64,,256,… De lengte van iedere segment is 1/3 van de voorgaande De totale lengte (uitgaande van 1) wordt met een factor 4/3 vergroot per stap (zie fig 10-26)
12
Dimensie fractal Afleiding fractale dimensie Als je start met lengte 1 en verdeelt deze met een factor S (verschalingsfactor) De lijn bestaat dan uit 1/S verdeelde copieen Het aantal copieen (onderverdelingen) is N De dimensie is D Als D=1 en S=1/4 zijn er 4 copieen met lengte 1/4 (zie fig 10.27a) In formule: 1=S 1.N Bij een vierkant is dimensie D=2 Als D=2 en S=1/4 zijn er 16 copieen met lengte 1/4 (zie fig 10.27b) In formule: 1=S 2.N Algemeen 1=S D.N
13
Dimensie fractal
14
Dimensie fractal Uitgaande van 1=S D.N kan deze omgewerkt worden naar: In het voorbeeld is N=4 en S= 1/3 (fig 10-25) Hieruit volgt:
15
Complexe functietheorie Veel fractal krommen worden gegenereerd met functies in het complexe vlak D.w.z. ieder 2 dimensionaal punt wordt gepresenteerd als de complexe uitdrukking Een complexe functie wordt dan gebruikt om punten herhaaldelijk af te beelden van 1 positie naar een andere positie Vb. f(z) = 5+z = 5 + x+iy = x’+y’i x’= 5+x y’=y hieruit oplossen y’=f(x’) y’=x’-5 y=x
16
Complexe functietheorie Dit is de afbeelding van f(z) in het complexe vlak Het kan zijn dat de afbeelding een punt geeft in het oneindige of op nul of op een kromme Een voorbeeld hiervan is f(z)=z 2 met z=x+iy f(z) = x’+y’i
17
Complexe functietheorie f(z)=(x+iy) 2 = x 2 +2xyi +i 2 y 2 = x 2 -y 2 +2xyi x’= x 2 -y 2 y’=2xy Het verband tussen x’en y’ moet nog door een 3 e voorwaarde gegeven worden Als de deze voorwaarde is |z| =1 volgt: |z| = 1 dus: x’= x 2 -y 2 y’=2xy hieruit volgt: x’ 2 +y’ 2 =1
18
Complexe functietheorie Dit is als |z|=1 Evenzo volgt als |z|=2 x’ 2 +y’ 2 =2 2 =4 z’=|1| x’ y’ +1 -1 z=|1| y x
19
Complexe functietheorie Het blijkt dat bij doorlopen van punten, waarbij |z|=1 de afbeelding een cirkel is met |z’|=1 Doet men nog een transformatie dan wordt |z”|=1 eveneens 1… enz Men blijft na transformatie steeds op de cirkel z=|2| y x -2 +2 z’=|4| x’ y’ -4-4 +4 -4-4
20
Complexe functietheorie Wel worden de punten steeds anders geplaatst Immers z kan ook anders geschreven worden: z =|z|e iα z 2 =|z| 2 e i2α Nu is z’ =|z’|e iβ Hieruit volgt: |z’|=|z| 2 arg(z’) =β =2α =2 arg(z) Kiest men als startpunt |z|=2 |z’|=4 |z”|=16…enz Na veel transformaties komt men in oneindig, maar niet op een kromme
21
Complexe functietheorie Kiest men als startpunt |z|=1/2 |z’|=1/4 |z”|=1/16…enz Na veel transformaties komt men in nul terecht, maar niet op een kromme Daarom heet f(z)=z 2 met |z|=1 een fractalkromme (zie fig 10-28)
22
Fractal functie Als |z| >1 worden punten getransformeerd naar oneindig Als |z| =1 worden punten getransformeerd naar cirkel Als |z| >1 worden punten getransformeerd naar nul Voor sommige functies is de grens tussen die punten die naar het oneindige gaan een fractal kromme Een belangrijke functie is : f(z)=λz(1-z)= z’ Waarbij λ een complexe constante is Het gedrag testen van een getransformeerd punt in het complexe vlak om de positie van`de fractal te bepalen duurt lang
23
Fractal functie Een snellere methode om de punten te berekenen is de inverse van de transformatie functie z’=λz – λz 2 λz- λz 2 -z’=0 z 2 - z+z’/ λ=0 Hieruit z oplossen geeft: Met complexe rekenoperaties kan deze vergelijking opgelost worden voor reele en imaginaire delen van z x = re(z) y = im(z) (x,y) worden dan getekend
24
Fractal functie Omdat de inverse functie 2 getransformeerde posities geeft kiezen we random de éne of de andere stap in de iteratie Ook als het imaginaire deel van -4z’/λ negatief is, is een van de mogelijke transformaties in het 2 e kwadrant (x 0) De andere positie is 180 0 verder, in het 4 e kwadrant
25
Fractal functie De transformaties zijn : L of R wordt random gekozen Een programma listing van deze formule is op de volgende sheets gegeven
26
Fractal programma
27
Fractal programma
28
Complexe functietheorie
29
Fractal programma
30
Fractal programma
31
Fractal programma Het programma begint in de main loop met initialisaties Het start met glutDisplayFunc Daar wordt gestart met een willekeurig punt z0(1.5,0.4) (zie displayFcn) die na transformatie niet op de fractalkromme hoeft te liggen Dat wordt 10 keer gedaan (zie selfSqTransf) Daarna wordt de kromme getekend met plotPoint Het is nog maar de vraag of de punten z convergeren naar een fractalkromme In fig 10.29 zijn de punten geplot
32
Fractal programma
33
Uitleg programma Enige opmerkingen over het programma Er wordt steeds met complexe getallen gerekend struct( complexNum) { Glfloat x,y} x= reele deel, y =imaginaire deel lambda=lambda.x + i.lambda.y ( λ=x+iy) (x,y elementen van de structure vandaar de.) lambdaMagSq= lambda.x * lambda.x + lambda.y * lambda.y (|λ| 2 =x 2 +y 2 )
34
Uitleg programma Berekening complex getal 4/ λ fourOverLambda.x=4.0*lambda.x/lamdaMagSq fourOverLambda.y=-4.0*lambda.y/lamdaMagSq
35
Wortel complex getal Wortel uit een complex getal Bepaling Dan is; w=z 2 = x+iy = |z|e iφ Dan zijn er 2 oplossingen w 0 = |z| 1/2 e iφ/2 w 1 = |z| 1/2 e i(φ/2+π) =-|z| 1/2 e iφ/2 We kiezen alleen w 0 Nu is -1= e iπ (stelling van Euler) en Nu is e iφ = cos φ +isinφ (stelling van Euler) Dus w 0 = |z| 1/2 e iφ/2 = |z| 1/2 (cos φ/2 +isinφ/2)
36
Wortel complex getal Nu is: Invullen alleen de positieve wortels
37
Wortel complex getal Met x=Re(z) en y=Im(z) en
38
Uitleg programma Terug naar de formule Nu is: zodat Re(discr) = discr.x Im(discr) = discr.y
39
Uitleg programma Stel: fourOverlambda = 4/λ =a+bi Re(fourOverlambda) = fourOverlambda.x = a Im(fourOverlambda) = fourOverlambda.y = b Stel: z’ = c+di Re(z’) = z->x = c Im(z’) = z->y = d Dan is 4/ λ.z’ = (a+bi)(c+di) = ac+bci+adi+bdi 2 = ac-bd + i(ad+bc) Dan is: discr = 1-(4/λ.z’) = 1-ac-bd + i(ad+bc) Re(discr) = discr.x = 1-ac-bd Im(discr) = discr.y = ad+bc
40
Uitleg programma discr.x = 1- z->x * fourOverlambda.x - z->y * fourOverlambda.y discr.y = z->x * fourOverlambda.y - z->y * fourOverlambda.x Nu is: Wortel-formule invullen geeft:
41
Uitleg programma Zodat: In het programma : z->x = srqt ((discrMag + discr.x ) / 2.0) gevolgd door : z->x = 0.5 * (1 - z->x) In het programma : z->y = 0.5 * srqt ((discrMag -discr.x ) / 2.0) )))
42
Uitleg programma In het programma wordt negatieve wortel vermeden, dat kan als : |discr| +Re(discr) <0 is, dan is reele deel 0: z->x = 0 en z->y = 0.5 * srqt ((discrMag -discr.x ) / 2.0) En als: |discr| -Re(discr) <0 is,dan is imaginaire deel 0: z->y = 0 en z->x = srqt ((discrMag + discr.x ) / 2.0) gevolgd door : z->x = 0.5 * (1 - z->x)
43
Uitleg programma In het programma worden nog de keuzes voor+ of – random gedaan
44
Vraagstukken 1.Gegeven: met z = z+ iy Gevraagd: Reele deel van z’ (Re(z’)) en het imaginaire deel van z’ (Im(z’)) Oplossing: Re(z’)= x+1 Im(z’)= y
45
Vraagstukken 2.Gegeven: z’=5z 2 +2z +5 +i met z = x+ iy Gevraagd: Reele deel van z’ (Re(z’)) en het imaginaire deel van z’ (Im(z’)) Oplossing: z’= 5(x+iy)(x+iy) +2(x+iy) + 5 +i = 5(x 2 +2 ixy +i 2 y 2 ) +2x +i2y +5 +i = 5 x 2 +10 ixy -5y 2 +2x +i2y +5 +i Re(z’)= 5 x 2 -5y 2 +2x +5 Im(z’)= 10xy +2y +1
46
Voorbeelden fractal Enige voorbeelden
47
Voorbeelden fractal
48
Voorbeelden fractal
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.