Fraktálok és csempézések

Slides:



Advertisements
Hasonló előadás
Matematika és művészetek
Advertisements

Nemlineáris és komplex rendszerek viselkedése
Komplex függvények színes világa Lócsi Levente Eötvös József Collegium.
FRAKTÁLOK.
 Árnyalási egyenlet  Saját emisszió  Adott irányú visszaverődés.
Globális illumináció (GI)
Sugárkövetés: ray-casting, ray-tracing
1. Bevezetés a waveletekhez (folytatás)
BMEEOVKMKM4 Házi feladat megoldás áttekintés
Sugárkövetés: ray-casting, ray-tracing Szirmay-Kalos László.
Grafikus játékok fejlesztése Szécsi László g11-physics
 Alapja a véletlen minták kiértékelése  Matematikai rendszerek  Fizikai szimuláció  Sok szabadság fokú csatolt rendszerek  Folyadékok, sejt struktúrák,
 Nincs szinkronizáció és kommunikáció  Csővezeték alkalmazása  Párhuzamosítás Proc 2Proc 1 Csővezeték Proc 1 Proc 21 Proc 22 Párhuzamosság.
Számítástudományi módszerek a webes szolgáltatásokban Rácz Balázs október 20.
Segédprogram Chaospro. Mire szolgál? A geometriában hagyományosan egy görbe egy-, egy felület két-, és egy térbeli test háromdimenziós. Az úgynevezett.
FRAKTÁLOK.
Egy feladat megoldásának gondolatmenete. Feladat: Generáljuk véletlen számokat 1 és 6 között, amíg legalább 10 darab egyes és 10 darab hatos nem lesz.
Készítette: Pető László
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
Reprezentációs függvény. Adva egy adattípus absztrakt és konkrét specifikációja: d a = ( A, F, E a ); d c = ( C, G, E c ); A = {A 0,..., A n };C = {C 0,...,
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
FRAKTÁLOK.
ISZAM III.évf. részére Bunkóczi László
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Budapesti Műszaki és Gazdaságtudományi Egyetem
Az Alakfelismerés és gépi tanulás ELEMEI
Fraktálok és a Mandelbrot halmaz.
Tömbök és programozási tételek
Idősor elemzés Idősor : időben ekvidisztáns elemekből álló sorozat
excel, (visual basic) makrók gyorstalpaló
Hipotézis vizsgálat (2)
Objektum orientált programozás a gyakorlatban
Hernyák Zoltán Programozási Nyelvek II.
AAO Csink László november.
1 AAO folytatás ++ Csink László. 2 Rekurzív bináris keresés (rendezett tömbben) public static int binker(int[] tomb, int value, int low, int high) public.
A D programozási nyelv Angeli Dávid. Nagy vonalakban  C++  
Fraktálok Szirmay-Kalos László.
Sugárkövetés: ray-casting, ray-tracing
Komplex dinamikus rendszerek vizualizációja a XaoS fraktálkészítő programmal Kovács Zoltán Szegedi Tudományegyetem Bolyai Intézet, Analízis Tanszék.
Belső állapotú bolyongások által meglátogatott pontok száma Nándori Péter (V.) Témavezető: Dr. Szász Domokos (BME MI)
Egyenesvonalú (lineáris) adatszerkezetek
Power Lutár Patrícia Pellek Krisztián.  -ltLess than  -leLess than or equal to  -gtGreater than  -geGreater than or equal to  -eqEqual to  -neNot.
A szóráselemzés gondolatmenete
FÜGGŐLEGESEN REZGETETT INGA
Pole (array of...).  Zložený datový typ na ukladanie viacerých premených  Zápis: var meno_pola : array [ konce intervala ] of základný typ ; Základné.
Algoritmus és adatszerkezet Tavaszi félév Tóth Norbert1 Floyd-Warshall-algoritmus Legrövidebb utak keresése.
Dodekaéder Hamilton köre
Fraktálok. Motiváció Three-Dimensional Mapping of Dislocation Avalanches: Clustering and Space/Time Coupling Jérôme Weiss and David Marsan Science 3 January.
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
4.6. A Fénysugár-követés módszere (ray-tracing) Mi látható a képernyőn, egy-egy képpontjában ? És az ott milyen színű ? (4.7. Árnyalás)
Excel programozás (makró)
Weboldalba ágyazott interaktív feladatok GeoGebra módra Papp-Varga Zsuzsanna ELTE IK Média- és Oktatásinformatika Tanszék
100-as szög méreteinek gyakorisága (n = 100) db mm Gyakoriság grafikon (adott méretű esetek db.)
Nemlineáris dinamikus rendszerek alapjai VI. gyakorlat
Excel programozás (makró)
6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése
Vizualizáció és képszintézis
Nemlineáris dinamikus rendszerek alapjai VII. gyakorlat
Készült a HEFOP P /1.0 projekt keretében
6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése
Példa: Dinteger = {..., -1,0,1,...}; Dboolean = {true, false};
Szécsi László 3D Grafikus Rendszerek 11. előadás
Sugármetszés implicit szintfelülettel
Minimális feszítőfák Definíció: Egy irányítatlan gráf feszítőfája a gráfnak az a részgráfja, amely fagráf és tartalmazza a gráf összes cúcspontját. Definíció:
B M Java Programozás 9. Gy: Java alapok IT A N Adatkezelő 5.rész
A Lineáris Keresés Buktatói
B M Java Programozás 1. Gy: Java alapok IT A N Ismétlés ++
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Függvénysablonok használata
A normális eloszlásból származó eloszlások
Előadás másolata:

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

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

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

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

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

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

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

Brown mozgás alkalmazása

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

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 ugyanez tovább H × random-mal rombusz közepére csúcsok átlaga + random

Terep generálás iterációk

Terep generálás a GPUn véletlenszámok zajtextúrában magasságmező-textúra a render target for(int i=0; i<n; i++) full screen quad rajzolás pixel shaderben freki skálázás: tex *= 2i zaj textúra olvasása: height = tex2d(noise, tex) amplitúdó skálázás: height *= Hi

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

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

Kaotikus dinamikus rendszer: nyulak nagy C értékre

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

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

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 n2 : ha z <  akkor fekete Attraktorhoz konvergálunk, ha az stabil z n+1 = z n2 attraktora labilis

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

Julia halmaz: z  z2 + c

Kitöltött Julia halmaz: algoritmus Im z (X,Y) 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 = z2 + c IF |z| > “infinity” THEN WRITE(X,Y, white) ELSE WRITE(X,Y, black) ENDFOR END Re z

Kitöltött Julia halmaz: kép

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; };

Julia shader

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

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); };

Julia shader DE

Julia 3D komplex → kvaternió

Sphere tracing

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

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

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

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 = z2 + c IF |z| > “infinity” THEN WRITE(X,Y, white) ELSE WRITE(X,Y, black) ENDFOR END

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; };

Mandelbrot

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); };

Mandelbrot shader DE

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

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

Egyszerű IFS-ek