Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Fraktálok és csempézések Szécsi László. Fraktálok Hausdorff dimenzió N= 1/r D D= (logN) / (log 1/r)

Hasonló előadás


Az előadások a következő témára: "Fraktálok és csempézések Szécsi László. Fraktálok Hausdorff dimenzió N= 1/r D D= (logN) / (log 1/r)"— Előadás másolata:

1 Fraktálok és csempézések Szécsi László

2 Fraktálok Hausdorff dimenzió N= 1/r D D= (logN) / (log 1/r)

3 Koch görbe D= (log4) / (log 3) = 1.26 N = 4, r = 1/3

4 Nem önhasonló objektumok dimenziója Vonalzó ( l ) db l 1 r =1/3N = 4 r 2 N 2 r m N m Hossz( l ) = l db = l N m = l (1/r D ) m = = l (1/r m ) D = 1/ l D -1 D = - log Hossz( l ) / log l + 1

5 Dimenziómérés = hosszmérés log l log Hossz( l ) D-1

6 Fraktálok előállítása Matematikai gépek: Brown mozgás Kaotikus dinamikus rendszerek

7 Brown mozgás - Wiener féle sztochasztikus folyamat Sztochasztikus folyamat (véletlen függvény) Trajektóriák folytonosak Független növekményű folyamat Növekmények 0 várható értékű normális eloszlás: –a független növekményűségből, a szórás az intervallum hosszával arányos

8 Brown mozgás alkalmazása

9 Terep generálás 1.5D + H random() + random() + H 2 random() H ≠ ½ → más fraktális dimenziójú görbe

10 Terep generálás 2.5D középpont elmozdítás ötlete marad diamond-square módszer átlók metszépontjában csúcsok átlaga + random rombusz közepére csúcsok átlaga + random ugyanez tovább H × random-mal

11 Terep generálás iterációk

12 Terep generálás a GPUn véletlenszámok zajtextúrában magasságmező-textúra a render target for(int i=0; i

13 Kaotikus dinamikus rendszer: nyulak kis C értékre S n+1 = C S n (1-S n )

14 Kaotikus dinamikus rendszer: nyulak közepes C értékre

15 Kaotikus dinamikus rendszer: nyulak nagy C értékre

16 Kaotikus rendszerek a síkon F z = x + jy

17 z  z 2 1 z = r e i  r  r 2   2  divergens konvergens Attraktor: H = F(H)

18 Attraktor előállítása Attraktor a labilis és a stabilis tartomány határa: kitöltött attraktor = amely nem divergens –z n+1 = z n 2 : ha z  <  akkor fekete Attraktorhoz konvergálunk, ha az stabil –z n+1 = z n 2 attraktora labilis

19 Inverz iterációs módszer H = F(H)  H = F -1 (H) z n+1 = z n 2 z n+1 =   z n r n+1 =  r n  n+1 =  n /2 + {0,1}·  1 r n  1  n  {0,1}.{0,1}{0,1}... ·  n n-1 n-2 Nem lehet csak egy értékkel dolgozni ???

20 Julia halmaz: z  z 2 + c

21 Kitöltött Julia halmaz: algoritmus FilledJuliaDraw ( ) FOR Y = 0 TO Ymax DO FOR X = 0 TO Xmax DO  ViewportWindow(X,Y  x, y) z = x + j y FOR i = 0 TO n DO z = z 2 + c IF |z| > “infinity” THEN WRITE(X,Y, white) ELSE WRITE(X,Y, black) ENDFOR END Re z Im z (X,Y)

22 Kitöltött Julia halmaz: kép

23 Julia shader float2 juliac = float2(-0.65, 0.5); float4 psJuliaFill(vsQuadOutput input) : COLOR0 { float2 c = juliac; float2 z = input.worldPos.xy; bool divergent = false; for(int i=0; i<30; i++) { float2 z2 = float2(z.x * z.x - z.y * z.y, 2 * z.x * z.y) + c; z = z2; if(length(z) > 100.0) { divergent = true; break; } return divergent; };

24 Julia shader

25 Távolság becslés színezés a pont halmaztól vett távolsága alapján z o pont távolsága a Julia halmaztól |G|/|G'| G(z o ) = lim k→∞ log|z k |/nk |G'(z o )| = lim k→∞ |dz k /dz o | / (n k |z k |). a dz k /dz o is iteratívan számolható dz k /dz o = 2 k z k-1... z o

26 Julia shader DE float2 juliac = float2(-0.65, 0.5); float4 psJuliaDistanceEstimator(vsQuadOutput input) : COLOR0 { float2 c = juliac; float2 z = input.worldPos.xy; float2 dz = float2(1, 0); while(length(dz) > 0.01) { float2 z2 = float2(z.x * z.x - z.y * z.y, 2 * z.x * z.y) + c; dz = 2 * float2(z.x * dz.x - z.y * dz.y, z.x * dz.y + dz.x * z.y); z = z2; if(length(z) > 100.0) break; } return pow(log(dot(z, z)) * length(z) / length(dz), 0.2); };

27 Julia shader DE

28 Julia 3D komplex → kvaternió

29 Sphere tracing

30 Julia halmaz összefüggő nem összefüggő, Cantor féle halmaz

31 Julia halmaz összefüggősége z n+1 =   z n -c c c H H H-c

32 Mandelbrot halmaz Azon c komplex számok, amelyekre a z  z 2 + c Julia halmaza összefüggő

33 Mandelbrot halmaz, algoritmus MandelbrotDraw ( ) FOR Y = 0 TO Ymax DO FOR X = 0 TO Xmax DO  ViewportWindow(X,Y  x, y) c = x + j y z = 0 FOR i = 0 TO n DO z = z 2 + c IF |z| > “infinity” THEN WRITE(X,Y, white) ELSE WRITE(X,Y, black) ENDFOR END

34 Mandelbrot shader float4 psMandelbrotFill(vsQuadOutput input) : COLOR0 { float2 c = input.worldPos.xy; float2 z = c; bool divergent = false; for(int i=0; i<30; i++) { float2 z2 = float2(z.x * z.x - z.y * z.y, 2 * z.x * z.y) + c; z = z2; if(length(z) > 100.0) { divergent = true; break; } return divergent; };

35 Mandelbrot

36 Mandelbrot shader DE float4 psMandelbrotDE(vsQuadOutput input) : COLOR0 { float2 c = input.worldPos.xy; float2 z = c; float2 dz = 0; while(length(z) < 8.0) { float2 z2 = float2(z.x * z.x - z.y * z.y, 2 * z.x * z.y) + c; dz = 2 * float2(z.x * dz.x - z.y * dz.y, z.x * dz.y + dz.x * z.y) + float2(1, 0); z = z2; if(length(z) > 100.0) break; } return pow(log(dot(z, z)) * length(z) / length(dz), 0.1); };

37 Mandelbrot shader DE

38 Inverz feladat: IFS modellezés x, y Attraktor: H = F(H) H  F F F: szabadon vezérelhető, legyen stabilis attraktora

39 F: többértékű lineáris leképzés F = W 1  W 2  …  W n W(x,y) = [ax + by + c, dx + ey + f] H = W 1 (H)  W 2 (H)  …  W n (H) Stabilitás = kontrakció H = F(H)

40 Egyszerű IFS-ek


Letölteni ppt "Fraktálok és csempézések Szécsi László. Fraktálok Hausdorff dimenzió N= 1/r D D= (logN) / (log 1/r)"

Hasonló előadás


Google Hirdetések