Hogyan kell felhívni a fraktál a javascript

Hogyan kell felhívni a fraktál

Egy egyszerű fraktál - ez önhasonló különböző léptékű képet. Mit jelent ez? Nos, például elképzelni a TV képernyőjén, amely azt mutatja, két képernyős TV-vel, amelyek mindegyike azt is mutatja, két képernyő, és ők viszont ... A természetben, fraktál viselkedés gyakori: azok a fák, ahol a fióktelep tüskékkel emlékeztet egy kicsinyített mása az egész fa ágai és a vér rendszerek élőlény, és a tengerpartok a kontinensen. By the way, egy ilyen triviális feladat, mint a pontos mérését a hossza a partvonal a szigetek és megkezdte a vizsgálatot a fraktálok és a hozzá kapcsolódó fogalom tört dimenzió. Mint kiderült, a hossza tengerpart pontosabb mérést nem elkötelezett egy bizonyos értéket, és fordítva - folyamatosan növekszik. A mértéke ez a sebesség növekedésével növekszik a pontosság, mint az idő, és meghatározza a hívott szám dimenzió. A különböző fraktálok (és rendre - a part) a számos különböző. Mellesleg, a „fraktál” vezették be Benoit Mandelbrot, aki írt egy úttörő cikket, „Mi a hossza a brit partvidék?”. Egy nemrég felfedezték, hogy a felület a normális és a rákos sejtek - fraktálok különböző méretű (olvasni).







Szóval hogyan lehet még felhívni szép fraktálok. A módszer lényege az, hogy még ha van egy síkban. Veszünk egy pont azt a koordinátákat (X, Y), és kezdjük, hogy vizsgálja meg ezen a ponton, hogy megtudja, milyen színű festeni. Mi értelme van ennek a tanulmánynak. Ez alkalmazható egy bizonyos konverziós úgy, hogy az a pont koordinátáit, hogy megkapja az új koordinátákat a többi pont. Például:







X1 = 2 * X * Y + C (1)
Y1 = X * X - Y * Y + D (2)

ahol (X1, Y1) - a koordinátáit az új pont, C, D - állandók. Csináltunk egy iterációs és ellenőrizze: hogy az új pont (X1, Y1) meghatározott területen kívül, vagy nem? Ha az előre meghatározott területen - egy kör egy központ (0,0), és egy R sugarú, akkor a fenti ellenőrzések vizsgálni a egyenlőtlenségek

X1 * X1 + Y1 * Y1> R * R (3)

Ha ez az egyenlőtlenség teljesül, a kiindulási pontot vizsgálták, ha nem, akkor ne ismét átalakítja a fenti (1) és (2), de az új koordinátákat (X1, Y1)

X2 = 2 * X1 * Y1 + C
Y2 = X1 * X1 - Y1 * Y1 + D

És erre, amíg új pont Xn, Yn győznie feltétel (3) vagy az iterációk meghalad egy előre meghatározott számú (például, 255). Így minden kiindulási pont (X, Y) ad nekünk eredményeként az ilyen vizsgálatok során egy N számú, amely megegyezik az iterációk számát. Ez a szám össze kell hasonlítani a színe a kiindulási pont. Ezután az egész eljárást meg kell tenni az egyes pontok a síkban. Ez minden.

x1 = x + 275;
y1 = 275 - y;
pp = (Y1 * 550 + x1) * 4;

függvény plotp (x, y, R, G, B) // felhívni a pont koordinátái a normális
pix [px (x, y)] = R;
pix [px (x, y) +1] = g;
pix [px (x, y) +2] = b;
pix [px (x, y) +3] = 127;
>

// - a fő funkciója, amely meghatározza, hogy hogyan néz ki a fraktál
függvény fract (x, y, cx, cy, r)
var r1, n, x1, y1;
r1 = x * x + y + y;
n = 0; // számít az iterációk számát
x1 = x;
Y1 = y;
míg a (r1 250)
>

var elem = document.getElementById ( 'myCanvas');

var összefüggésben = elem.getContext ( '2d');

var w = 550, H = 550,
X = 0, Y = 0;
imgd = context.getImageData (0, 0, W, H);

var pix = imgd.data;

var sx, sy; // ez a torzítás, ha azt akarjuk, hogy a fraktál-re a pontot (0,0)

sx = 800;
SY = -600;
m = 1000; // és a skála

A (var x2 = -250; x2

Néhány szó a paraméterek a fent megállapított JS kód:

sx = 800;
SY = -600;
m = 1000;
0,51, 0,1, 400 - a hívás fract () funkció

Miért ezek a számok? „Lök” módszert válasszuk meg, hogy a kép szép.

Ha tetszett az anyag, kérjük, ossza meg barátaival:

Nem kapcsolódó póznák




Kapcsolódó cikkek