1 / 15

Juliovy množiny

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 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.

Download Presentation

Juliovy množiny

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Juliovy množiny

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

  3. Pozorování • Juliova množina Jc 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 Jc aJuliova množina Jc souvislá • Pro body c vně Mandelbrotovy množiny je Juliova množina Jc nesouvislá, popřípadě prázdná.

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

  5. Pozorování Pro body c „hodně vně“ Mandelbrotovy množiny tvoří Juliovu množinu Jc 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. Nebo zvenku

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

  9. 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

  10. 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 (28+26} 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;

  11. 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; {z0, počet iterací} while ((Z_Real*Z_Real+Z_Imagin*Z_Imagin)<=4) and {‚zn‘<=2} (POCITADLO<LIMIT) do begin {limit počtu iterací} Re:=Z_Real*Z_Real-Z_Imagin*Z_Imagin+X; {rekurzivní předpis} Im:=2*Z_Real*Z_Imagin+Y; Z_Real:=Re; Z_Imagin:=Im; POCITADLO:=POCITADLO+1; end; if POCITADLO=LIMIT then Urci_Mandelbrotovost:=0 {zdá se, že bod je v M.m.} else Urci_Mandelbrotovost:=POCITADLO; {není tam} end;

  12. Zbytek programu program mandelbrotka; {$G+} uses crt; var RADEK,SLOUPEC: word; BARVA:byte; begin clrscr; {Vymazání obrazovky} init13; for RADEK:=1 to 200 do for SLOUPEC:= 1 to 300 do begin {Obrázek 200x300} BARVA:=Urci_Mandelbrotovost(SLOUPEC/100-2,RADEK/100-1); 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.

  13. 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 http://kix.fsv.cvut.cz/~vanicek/vyuka_l10/mandelbrotka.pas

More Related