Snowflake Koch konstrukcija. Kako nacrtati Koch pahuljicu, foto dijagrami, kako izgleda Koch pahulja? Označavanje korisničkog sučelja aplikacije u programu za izgradnju aplikacija

Fraktalnu pahuljicu, jedan od najpoznatijih i najmisterioznijih geometrijskih objekata, opisala je Helga von Koch početkom našeg stoljeća. Prema predanju, u našoj literaturi se zove Kochova pahulja. Ovo je vrlo „šiljasta“ geometrijska figura, koja se metaforički može vidjeti kao rezultat Davidove zvijezde koja se sama po sebi „množi“. Njegovih šest glavnih zraka prekriveno je beskonačnim brojem velikih i malih vrhova „iglica“. Svaki mikroskopski fragment konture pahulje je poput dva graška u mahuni, a velika greda, zauzvrat, sadrži beskonačan broj istih mikroskopskih fragmenata.

Na međunarodnom simpozijumu o metodologiji matematičkog modeliranja u Varni 1994. godine naišao sam na radove bugarskih autora koji su opisali svoja iskustva korištenja Kochovih pahuljica i drugih sličnih objekata u srednjoškolskoj nastavi za ilustraciju problema djeljivosti prostora i Zenonove filozofske aporije. Osim toga, sa obrazovne tačke gledišta, po mom mišljenju, vrlo je zanimljiv sam princip konstruisanja pravilnih fraktalnih geometrijskih struktura - princip rekurzivnog množenja osnovnog elementa. Nije uzalud da priroda "voli" fraktalne forme. To se objašnjava upravo činjenicom da se dobivaju jednostavnom reprodukcijom i promjenom veličine određenog elementarnog gradivnog bloka. Kao što znate, priroda se ne prepuni raznih razloga i, gdje je moguće, zadovoljava se najjednostavnijim algoritamskim rješenjima. Pažljivo pogledajte konture listova i u mnogim slučajevima ćete pronaći jasnu vezu s oblikom konture Kochove pahulje.

Vizualizacija fraktalnih geometrijskih struktura moguća je samo uz pomoć kompjutera. Već je veoma teško ručno konstruisati Kochovu pahulju iznad trećeg reda, ali zaista želite da gledate u beskonačnost! Stoga, zašto ne pokušati razviti odgovarajući kompjuterski program. U RuNetu možete pronaći preporuke za pravljenje Koch pahuljice od trokuta. Rezultat ovog algoritma izgleda kao zbrka linija koje se ukrštaju. Zanimljivije je kombinirati ovu figuru iz "komada". Kontura Kochove pahulje sastoji se od segmenata jednake dužine nagnutih pod uglom od 0°, 60° i 120° u odnosu na horizontalnu x-osu. Ako ih označimo sa 1, 2 i 3, tada će se pahulja bilo kojeg reda sastojati od uzastopnih trojki - 1, 2, 3, 1, 2, 3, 1, 2, 3... itd. Svaki od ova tri tipa segmenata mogu biti pričvršćeni za prethodni na jednom ili drugom kraju. Uzimajući u obzir ovu okolnost, možemo pretpostaviti da se kontura pahulje sastoji od segmenata šest vrsta. Označimo ih sa 0, 1, 2, 3, 4, 5. Tako dobijamo priliku da kodiramo konturu bilo kog reda koristeći 6 cifara (vidi sliku).

Snježna pahulja višeg reda se dobija od prethodnika nižeg reda zamjenom svake ivice sa četiri, spojena poput presavijenih dlanova (_/\_). Tip ivice 0 zamjenjuje se sa četiri ivice 0, 5, 1, 0 i tako dalje prema tabeli:

0 0 1 5 0
1 1 2 0 1
2 2 3 1 2
3 3 4 2 3
4 4 5 3 4
5 5 0 4 5

Jednostavan jednakostranični trougao se može zamisliti kao Kohova pahulja nultog reda. U opisanom sistemu kodiranja odgovara unosu 0, 4, 2. Sve ostalo se može dobiti opisanim zamjenama. Neću ovdje navoditi šifru procedure i time vas lišiti zadovoljstva razvijanja vlastitog programa. Kada ga pišete, uopće nije potrebno koristiti eksplicitni rekurzivni poziv. Može se zamijeniti redovnim ciklusom. U procesu rada imat ćete još jedan razlog za razmišljanje o rekurziji i njenoj ulozi u formiranju kvazifraktalnih oblika svijeta oko nas, a na kraju puta (ako, naravno, niste previše lijeni da prođete kroz njega do kraja) moći ćete da se divite složenom uzorku kontura fraktalne pahulje i konačno pogledate u lice beskonačnosti.

Snowflake Koch

Početkom dvadesetog veka matematičari su tražili krivulje koje ni u jednoj tački nemaju tangentu. To je značilo da je kriva naglo promijenila smjer, i to enormno velikom brzinom (izvod je bio jednak beskonačnosti). Potraga za ovim krivuljama nije bila uzrokovana samo praznim zanimanjem matematičara. Činjenica je da se početkom dvadesetog veka kvantna mehanika razvijala veoma brzo. Istraživač M. Brown je skicirao putanju kretanja suspendiranih čestica u vodi i objasnio ovaj fenomen na sljedeći način: nasumično pokretni atomi tekućine udaraju u suspendirane čestice i time ih pokreću. Nakon ovog objašnjenja Brownovog kretanja, naučnici su se suočili sa zadatkom pronalaženja krive koja bi najbolje aproksimirala kretanje Brownovih čestica. Da bi se to postiglo, kriva je morala zadovoljiti sljedeća svojstva: da nema tangente ni u jednoj tački. Matematičar Koch je predložio jednu takvu krivu. Nećemo ulaziti u objašnjenja pravila za njegovu konstrukciju, već ćemo jednostavno prikazati njenu sliku iz koje će sve postati jasno (slika 1.1.1).

Slika 1.1.1. Snowflake Koch.

Jedno važno svojstvo koje ima granica Kochove pahulje je njena beskonačna dužina. Ovo može izgledati iznenađujuće jer smo navikli da se bavimo krivuljama iz matematičkih kurseva. Obično glatke ili barem po komadima glatke krive uvijek imaju konačnu dužinu (što se može provjeriti integracijom). Mandelbrot je u tom smislu objavio niz fascinantnih radova koji istražuju pitanje mjerenja dužine obale Velike Britanije. Kao model on

Rice. 1.1.2. Konstrukcija Kochove pahulje.


koristio je fraktalnu krivulju, koja podsjeća na ivicu pahulje, osim što je uvela element slučajnosti kako bi se uzela u obzir slučajnost u prirodi. Kao rezultat toga, pokazalo se da kriva koja opisuje obalu ima beskonačnu dužinu.

Salveta i tepih Sierpinskog

Još jedan primjer jednostavnog samosličnog fraktala --- Sierpinski salveta(Sl. 1.2.1), koji je izumio poljski matematičar Waclaw Sierpinski 1915. godine. Sam termin salveta pripada Mandelbrotu. U metodi izgradnje ispod, počinjemo sa određenim regionom i sekvencijalno eliminišemo unutrašnje podregije. Kasnije ćemo razmotriti druge metode, posebno korištenje L-sistema, kao i bazirane na iteriranim funkcijama.

Slika 1.2.1. Sierpinski salveta

Neka je početni skup S 0 jednakostranični trougao zajedno sa područjem koje obuhvata. Podijelimo S0 na četiri manja trouglasta područja, spajajući sredine stranica originalnog trougla segmentima. Uklonimo unutrašnjost male centralne trokutaste površine. Nazovimo preostali skup S 1 (slika 1.2.2). Zatim ponavljamo postupak za svaki od tri preostala mala trougla da bismo dobili sljedeću aproksimaciju S 2 . Nastavljajući na ovaj način, dobijamo niz ugniježđenih skupova S n čiji presjek formira ubrus S.

Rice. 1.2.2. Konstrukcija Sierpinskog salvete


Očigledno je da je ukupna površina izbačenih dijelova tokom izgradnje tačno jednaka površini originalnog trokuta. U prvom koraku bacili smo ¼ dijela površine. U sljedećem koraku izbacili smo tri trokuta, pri čemu je površina svakog jednaka ½ 2 površine prvobitnog. Obrazlažući na ovaj način, uvjereni smo da je ukupan udio odbačene površine:

1/4 + 3 * (1/4 2) + 3 2 * (1/4 3) + … + 3 n-1 * (1/4 n) + … .

Ovaj iznos je jednak. Stoga možemo tvrditi da preostali skup S, odnosno salveta, ima površinu mjere nula. Ovo čini S "savršenim" skupom, u smislu da dijeli svoj komplement na beskonačan broj trouglastih regija, dok ima nultu debljinu.

Tepih Sierpinski se smatra još jednim fraktalnim modelom. Konstruira se na sljedeći način: uzmite kvadrat, podijelite ga na devet kvadrata i izrežite središnji kvadrat. Zatim se sličan postupak radi sa svakim od osam preostalih kvadrata. I tako u nedogled. Kao rezultat toga, umjesto cijelog kvadrata, dobivamo tepih s osebujnim simetričnim uzorkom. Ovaj model je prvi predložio matematičar Sierpinski, u čiju čast je i dobio ime. Primjer tepiha Sierpinskog može se vidjeti na Sl. 1.2.3.

Ova figura je jedan od prvih fraktala koji su proučavali naučnici. Dolazi iz tri primjerka Kochova kriva, koji se prvi put pojavio u radu švedskog matematičara Helgea von Kocha 1904. godine. Ova kriva je izmišljena kao primjer neprekidne linije koja ne može biti tangentna ni na jednu tačku. Linije s ovim svojstvom bile su poznate i ranije (Karl Weierstrass je izgradio svoj primjer još 1872. godine), ali Kochova kriva je izvanredna po jednostavnosti svog dizajna. Nije slučajno što se njegov članak zove “O kontinuiranoj krivulji bez tangenta, koja proizlazi iz elementarne geometrije”.


Prve faze konstruisanja Kochove krive

Crtež i animacija savršeno pokazuju kako se Kochova kriva konstruiše korak po korak. Prva iteracija je jednostavno početni segment. Zatim se podijeli na tri jednaka dijela, središnji se dovrši da formira pravilan trougao i zatim se izbacuje. Rezultat je druga iteracija - izlomljena linija koja se sastoji od četiri segmenta. Na svaki od njih se primjenjuje ista operacija i dobije se četvrti korak konstrukcije. Nastavljajući u istom duhu, možete dobiti sve više i više novih linija (sve će biti izlomljene linije). A ono što se događa u granici (ovo će već biti imaginarni objekt) naziva se Kochova kriva.

Osnovna svojstva Kochove krive

1. Kontinuirano je, ali se nigdje ne može razlikovati. Grubo govoreći, upravo zbog toga je i izmišljen - kao primjer ove vrste matematičkih "nakaza".

2. Ima beskonačnu dužinu. Neka je dužina originalnog segmenta jednaka 1. U svakom koraku konstrukcije svaki od segmenata koji čine liniju zamjenjujemo izlomljenom linijom, koja je 4/3 puta duža. To znači da se dužina cijele izlomljene linije množi sa 4/3 u svakom koraku: dužina linije sa brojem n je jednako (4/3) n–1 . Stoga granična linija nema drugog izbora osim da bude beskonačno duga.

3. Kochova pahulja ograničava konačno područje. I to uprkos činjenici da je njegov perimetar beskonačan. Ovo svojstvo može izgledati paradoksalno, ali je očigledno - pahulja se u potpunosti uklapa u krug, pa je njena površina očigledno ograničena. Područje se može izračunati, a za to vam ni ne treba posebno znanje - formule za površinu trokuta i zbroj geometrijske progresije uče se u školi. Za zainteresovane, kalkulacija je navedena u nastavku sitnim slovima.

Neka je stranica originalnog pravilnog trougla jednaka a. Tada je njegova površina . Prvo strana je 1, a površina je: . Šta se dešava kako se iteracija povećava? Možemo pretpostaviti da su mali jednakostranični trouglovi vezani za postojeći poligon. Prvi put ih ima samo 3, a svaki naredni put ih je 4 puta više od prethodnog. To jest, na n U st. koraku, T n = 3 · 4 n–1 trougla će biti završeno. Dužina stranice svakog od njih je jedna trećina stranice trougla završene u prethodnom koraku. To znači da je jednako (1/3) n. Površine su proporcionalne kvadratima stranica, pa je površina svakog trokuta jednaka . Za velike vrijednosti n Inače, ovo je jako malo. Ukupan doprinos ovih trouglova površini pahulje je T n · S n = 3/4 · (4/9) n · S 0 . Stoga poslije n u koraku, površina figure će biti jednaka zbroju S 0 + T 1 · S 1 + T 2 · S 2 + ... +T n · S n = . Pahulja se dobija nakon beskonačnog broja koraka, što odgovara n → ∞. Rezultat je beskonačan zbir, ali ovo je zbir opadajuće geometrijske progresije za to postoji formula: . Površina pahulje je jednaka.

4. Fraktalna dimenzija je jednaka log4/log3 = log 3 4 ≈ 1,261859... . Za tačan proračun će biti potreban znatan trud i detaljna objašnjenja, pa je ovdje prije ilustracija definicije fraktalne dimenzije. Iz formule stepena N(δ) ~ (1/δ)D, gdje je N- broj kvadrata koji se sijeku, δ - njihovu veličinu, D- dimenzija, dobijamo da je D = log 1/δ N. Ova jednakost vrijedi do dodavanja konstante (isto za sve δ ). Slike pokazuju petu iteraciju konstrukcije Kochove krive, kvadrati mreže koji se sijeku s njom su zasjenjeni zelenom bojom. Dužina originalnog segmenta je 1, tako da je na lijevoj slici dužina stranice kvadrata 1/9. 12 kvadrata je zasjenjeno, log 9 12 ≈ 1,130929... . Još nije baš sličan 1.261859... . Pogledajmo dalje. Na srednjoj slici kvadrati su upola manji, njihova veličina je 1/18, zasjenjena 30. log 18 30 ≈ 1,176733... . Već bolje. Desno su kvadrati još upola manji, 72 komada su već prefarbana. log 72 30 ≈ 1,193426... . Još bliže. Tada trebate povećati broj iteracije i istovremeno smanjiti kvadrate, tada će se "empirijska" vrijednost dimenzije Kochove krivulje stalno približavati log 3 4, a u granici će se potpuno poklopiti.

Opcije
Kochova pahulja “naprotiv” dobija se ako konstruišemo Kohove krive unutar originalnog jednakostraničnog trougla.
Cesaro Lines. Umjesto jednakostraničnih trouglova koriste se jednakokračni trouglovi sa uglom u osnovi od 60° do 90°. Na slici je ugao 88°.
Kvadratna verzija. Ovdje su kvadrati završeni.
Trodimenzionalni analozi. Koch space.

Tri kopije Kochove krive, konstruirane (sa tačkama prema van) na stranicama pravilnog trougla, formiraju zatvorenu krivulju beskonačne dužine tzv. Kochova pahulja.

Ova figura je jedan od prvih fraktala koji su proučavali naučnici. Dolazi iz tri primjerka Kochova kriva, koji se prvi put pojavio u radu švedskog matematičara Helgea von Kocha 1904. godine. Ova kriva je izmišljena kao primjer neprekidne linije koja ne može biti tangentna ni na jednu tačku. Linije s ovim svojstvom bile su poznate i ranije (Karl Weierstrass je izgradio svoj primjer još 1872. godine), ali Kochova kriva je izvanredna po jednostavnosti svog dizajna. Nije slučajno što se njegov članak zove “O kontinuiranoj krivulji bez tangenta, koja proizlazi iz elementarne geometrije”.

Crtež i animacija savršeno pokazuju kako se Kochova kriva konstruiše korak po korak. Prva iteracija je jednostavno početni segment. Zatim se podijeli na tri jednaka dijela, središnji se dovrši da formira pravilan trougao i zatim se izbacuje. Rezultat je druga iteracija - izlomljena linija koja se sastoji od četiri segmenta. Na svaki od njih se primjenjuje ista operacija i dobije se četvrti korak konstrukcije. Nastavljajući u istom duhu, možete dobiti sve više i više novih linija (sve će biti izlomljene linije). A ono što se događa u granici (ovo će već biti imaginarni objekt) naziva se Kochova kriva.

Osnovna svojstva Kochove krive

1. Kontinuirano je, ali se nigdje ne može razlikovati. Grubo govoreći, upravo zbog toga je i izmišljen - kao primjer ove vrste matematičkih "nakaza".

2. Ima beskonačnu dužinu. Neka je dužina originalnog segmenta jednaka 1. U svakom koraku konstrukcije svaki od segmenata koji čine liniju zamjenjujemo izlomljenom linijom, koja je 4/3 puta duža. To znači da se dužina cijele izlomljene linije množi sa 4/3 u svakom koraku: dužina linije sa brojem n jednako (4/3) n-1 . Stoga granična linija nema drugog izbora osim da bude beskonačno duga.

3. Kochova pahulja ograničava konačno područje. I to uprkos činjenici da je njegov perimetar beskonačan. Ovo svojstvo može izgledati paradoksalno, ali je očigledno - pahulja se u potpunosti uklapa u krug, pa je njena površina očigledno ograničena. Područje se može izračunati, a za to vam ni ne treba posebno znanje - formule za površinu trokuta i zbroj geometrijske progresije uče se u školi. Za zainteresovane, kalkulacija je navedena u nastavku sitnim slovima.

Neka je stranica originalnog pravilnog trougla jednaka a. Tada je njegova površina . Prvo strana je 1, a površina je: . Šta se dešava kako se iteracija povećava? Možemo pretpostaviti da su mali jednakostranični trouglovi vezani za postojeći poligon. Prvi put ih ima samo 3, a svaki naredni put ih je 4 puta više od prethodnog. To jest, na n korak će biti završen Tn= 3 4 n-1 trokut. Dužina stranice svakog od njih je jedna trećina stranice trougla završene u prethodnom koraku. Dakle, jednako je (1/3) n. Površine su proporcionalne kvadratima stranica, pa je površina svakog trokuta jednaka . Za velike vrijednosti n Inače, ovo je jako malo. Ukupan doprinos ovih trouglova površini pahulje je jednak Tn · S n= 3/4 · (4/9) n · S 0 . Stoga poslije n-korak, površina figure će biti jednaka zbiru S 0 + T 1 · S 1 + T 2 · S 2 + ... +Tn S n = . Pahulja se dobija nakon beskonačnog broja koraka, što odgovara n→ ∞. Rezultat je beskonačan zbir, ali ovo je zbir opadajuće geometrijske progresije za to postoji formula: . Površina snježne pahulje je .

4. Fraktalna dimenzija je jednaka log4/log3 = log 3 4 ≈ 1,261859... . Za tačan proračun će biti potreban znatan trud i detaljna objašnjenja, pa je ovdje prije ilustracija definicije fraktalne dimenzije. Iz formule zakona moći N(δ ) ~ (1/δ )D, Gdje N- broj kvadrata koji se sijeku, δ - njihovu veličinu i D je dimenzija, to shvatamo D= log 1/ δ N. Ova jednakost vrijedi do dodavanja konstante (isto za sve δ ). Slike pokazuju petu iteraciju konstrukcije Kochove krive, kvadrati mreže koji se sijeku s njom su zasjenjeni zelenom bojom. Dužina originalnog segmenta je 1, tako da je na gornjoj slici dužina stranice kvadrata 1/9. 12 kvadrata je zasjenjeno, log 9 12 ≈ 1,130929... . Još nije baš sličan 1.261859... . Pogledajmo dalje. Na srednjoj slici kvadrati su upola manji, njihova veličina je 1/18, zasjenjena 30. log 18 30 ≈ 1,176733... . Već bolje. Dole su kvadrati još upola manji; 72 komada su već obojena. log 72 30 ≈ 1,193426... . Još bliže. Tada trebate povećati broj iteracije i istovremeno smanjiti kvadrate, tada će se "empirijska" vrijednost dimenzije Kochove krivulje stalno približavati log 3 4, a u granici će se potpuno poklopiti.

Opcije

Kohova pahulja „naprotiv“ dobija se ako konstruišemo Kohove krive unutar originalnog jednakostraničnog trougla.

Cesaro linije. Umjesto jednakostraničnih trouglova koriste se jednakokračni trouglovi sa uglom u osnovi od 60° do 90°. Na slici, ugao je 88°.

Kvadratna opcija. Ovdje su kvadrati završeni.





Snowflake Koch

platno(
ivica: 1px isprekidana crna;
}

var cos = 0,5,
sin = Math.sqrt(3) / 2,
stepen = Math.PI / 180;
canv, ctx;

funkcija rebro(n, len) (
ctx.save(); // Sačuvajte trenutnu transformaciju
if (n == 0) ( // Nerekurzivni slučaj - nacrtaj liniju
ctx.lineTo(len, 0);
}
drugo(
ctx.scale(1 / 3, 1 / 3); // Umanji za 3 puta
rebro(n-1, len); //REKURZIJA na rubu
ctx.rotate (60 * stepeni);
rebro(n-1, len);
ctx.rotate(-120 * stepeni);
rebro(n-1, len);
ctx.rotate (60 * stepeni);
rebro(n-1, len);
}
ctx.restore(); // Vraćanje transformacije
ctx.translate(len, 0); // idemo do kraja ivice
}

funkcija drawKochSnowflake(x, y, len, n) (
x = x - len / 2;
y = y + len / 2 * Math.sqrt(3)/3;
ctx.save();
ctx.beginPath();
ctx.translate(x, y);
ctx.moveTo(0, 0);
rebro(n, len); ctx.rotate(-120 * stepeni); //RECUUUURSION je već trokut
rebro(n, len); ctx.rotate(-120 * stepeni);
rebro(n, len); ctx.closePath();
ctx.strokeStyle = "#000";
ctx.stroke();
ctx.restore();
}

funkcija clearcanvas())( //očistimo platno
ctx.save();
ctx.beginPath();

// Koristite matricu identiteta dok čistite platno
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.clearRect(0, 0, canvas1.width, canvas1.height);

// Vraćanje transformacije
ctx.restore();
}

funkcija run() (
canv = document.getElementById("canvas1");
ctx = canv.getContext("2d");
var numberiter = document.getElementById("qty").value;
drawKochSnowflake(canv.width/2, canv.height/2, 380, numberiter);

Ctx.stroke(); //rendering
}




Kochova pahulja - primjer









Kochova kriva je fraktalna kriva koju je 1904. opisao švedski matematičar Helge von Koch. Tri kopije Kochove krive, konstruirane (pokazuje prema van) na stranicama jednakostraničnog trougla, formiraju zatvorenu krivu koja se naziva Kochova pahulja.

Ponekad imam nagiba kada želim neku vrstu psovke. programirati problem. Ovaj put sam odlučio da se pozabavim fraktalima. Naime sa Koch pahuljom.

Snowflake Koch

Ovaj fraktal jedan je od prvih koji su naučnici proučavali. Izvedena je iz tri kopije Kochove krive, koja se prvi put pojavila u radu švedskog matematičara Helgea von Kocha 1904. godine. Ova kriva je izmišljena kao primjer neprekidne linije koja ne može biti tangentna ni na jednu tačku.

Osnovna svojstva Kochove krive:

  • Ona je kontinuirana, ali se nigdje ne može razlikovati.
  • Ima beskonačnu dužinu. Neka je dužina originalnog segmenta jednaka 1. U svakom koraku konstrukcije svaki od segmenata koji čine liniju zamjenjujemo izlomljenom linijom, koja je 4/3 puta duža. To znači da se dužina cijele izlomljene linije množi sa 4/3 na svakom koraku: dužina linije sa brojem n jednaka je (4/3)n–1. Stoga granična linija nema izbora osim da bude beskonačno duga.
  • Kochova snježna pahulja ograničava konačno područje. I to uprkos činjenici da je njegov perimetar beskonačan. Ovo svojstvo može izgledati paradoksalno, ali je očigledno - pahulja se u potpunosti uklapa u krug, pa je njena površina očigledno ograničena.
  • Malo matematike

    Ponekad je prilično zanimljivo prisjetiti se najjednostavnijih psovki. transformacije (: U ovom slučaju je bilo potrebno osvježiti znanje o vektorima i transformacijama tačaka u ravni.

    Konkretno, kako rotirati tačku u odnosu na drugu tačku:

    Pa, morate znati kako pronaći tačku na segmentu koji je na određenoj udaljenosti od tačke, znajući ovu udaljenost i koordinate tačaka. Postoji toliko mnogo metoda. Možete pronaći koordinate prave koja sadrži ove tačke, a zatim ih zamijeniti u jednadžbu. Možete izračunati koordinate pomoću vektora.

    Izgleda otprilike ovako.