Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Juliovy množiny. Juliova množina pro dané komplexní číslo c Pro každý bod komplexní roviny z počítám z 0 = z Z n+1 = z n 2 + c (stejný vzorec jako u Mandelbrotovy.

Podobné prezentace


Prezentace na téma: "Juliovy množiny. Juliova množina pro dané komplexní číslo c Pro každý bod komplexní roviny z počítám z 0 = z Z n+1 = z n 2 + c (stejný vzorec jako u Mandelbrotovy."— Transkript prezentace:

1 Juliovy množiny

2 Juliova množina pro dané komplexní číslo c Pro každý bod komplexní roviny z počítám z 0 = z Z n+1 = z n 2 + c (stejný vzorec jako u Mandelbrotovy množiny) Pokud posloupnost z n nejde do nekonečna, je bod z prvkem Juliovy množiny pro číslo c, Tuto množinu značíme J c

3 Pozorování Juliova množina J c vypadá v okolí bodu 0 podobně jako Mandelbrotova množina v okolí bodu c Pro body c uvnitř Mandelbrotovy množiny je (0,0) prvkem Juliovy množiny J c a Juliova množina J c souvislá Pro body c vně Mandelbrotovy množiny je Juliova množina J c nesouvislá, popřípadě prázdná.

4 Pozorování Pro body c „hodně uvnitř“ Mandelbrotovy množiny je Juliova množina J c nezajímavý souvislý útvar.

5 Pozorování Pro body c „hodně vně“ Mandelbrotovy množiny tvoří Juliovu množinu J c několik izolovaných bodů

6 Pozorování „Nejzajímavější“ Juliovy množiny vzniknou z bodů, které leží poblíž hranice Mandelbrotovy množiny, ať již zevnitř

7

8 Nebo zvenku

9

10 Program na vykreslení Mandelbrotovy množiny Pascal + Assembler (zápis do video paměti)

11 Inicializace grafického režimu #13 procedure init13;assembler; asm mov ax, $0013 int $10 end; Přerušení 10 V registru ax číslo grafického režimu Režim 13: 320x200 pixelů, 256 barev

12 Vykreslení bodu procedure bod256 (x,y:word; barva:byte); assembler; asm mov ax,$a000 {a000 = adresa počátku videopaměti} mov es,ax {a000 = adresa počátku videopaměti do es} mov di,y {y-ová souřadnice pixelu do di} mov ax,di shl di,6 shl ax,8 add di,ax {y-ovou souřadnici násobím 320 ( } add di,x {přičtu x-ovu souřadnici} mov al,barva mov es:[di],al {Vložím kód barvy do videopaměti = vykreslení} end;

13 Funkce určující, zda bod patří do Mandelbrotovy množiny function Urci_Mandelbrotovost (X,Y: Real): Integer; {výsledek 0 je v M.m., nebo číslo iterace, kdy se zjistilo, že není} const LIMIT=250; {Maximální počet iterací} var Z_Real,Z_Imagin,Re,Im:Real; POCITADLO:Integer; begin Z_Real:=0; Z_Imagin:=0; POCITADLO:=1; {z 0, počet iterací} while ((Z_Real*Z_Real+Z_Imagin*Z_Imagin)<=4) and {‚z n ‘<=2} (POCITADLO

14 Zbytek programu program mandelbrotka; {$G+} uses crt; const XMIN=-3;XMAX=1;YMIN=-1.5;YMAX=1.5; const LIMIT=10; var RADEK,SLOUPEC: word; KROKX,KROKY:Real; BARVA:byte; begin clrscr; {Vymazání obrazovky} init13; KROKX:=(XMAX-XMIN)/300; KROKY:=(YMAX-YMIN)/200; for RADEK:=1 to 200 do for SLOUPEC:= 1 to 300 do begin BARVA:=Urci_Mandelbrotovost(SLOUPEC*KROKX+XMIN,RADEK*KR OKY+YMIN); if BARVA > 0 then bod256 (SLOUPEC,RADEK,BARVA); {Pokud bod není v M.m., tak ho vykresli příslušnou barvou, jinak nech černý} end; Readkey; {čekej na zmáčknutí klávesy} end.

15 Zadání úkolu Upravte program pro vykreslení Mandelbrotovy množiny tak, aby vykresloval Juliovu množinu. Hodnota c může být napevno zadaná v programu. Pokuste se odhadnout hodnotu (hodnoty) c, pro které vyjde hezký obrázek. Program Mandelbrotka je ke stažení na


Stáhnout ppt "Juliovy množiny. Juliova množina pro dané komplexní číslo c Pro každý bod komplexní roviny z počítám z 0 = z Z n+1 = z n 2 + c (stejný vzorec jako u Mandelbrotovy."

Podobné prezentace


Reklamy Google