Open Library – atvira edukacinės informacijos biblioteka. Atidengtas vėjo pūstas Pitagoro medis Naudojant rekursinę procedūrą Pitagoro medžio figūrai sukurti

Open Library – atvira edukacinės informacijos biblioteka.  Atidengtas vėjo pūstas Pitagoro medis Naudojant rekursinę procedūrą Pitagoro medžio figūrai sukurti
Open Library – atvira edukacinės informacijos biblioteka. Atidengtas vėjo pūstas Pitagoro medis Naudojant rekursinę procedūrą Pitagoro medžio figūrai sukurti

Pitagoro medis yra fraktalų tipas, pagrįstas figūra, žinoma kaip Pitagoro kelnės.

Įrodydamas savo garsiąją teoremą, Pitagoras sukonstravo figūrą, kurioje kiekvienoje stačiojo trikampio kraštinėje buvo kvadratai. Laikui bėgant ši Pitagoro figūra virto visu medžiu. Pirmasis Pitagoro medį Antrojo pasaulinio karo metais sukonstravo A. Bosmanas, naudodamas paprastą piešimo liniuotę.

Viena iš pagrindinių Pitagoro medžio savybių yra ta, kad kai pirmojo kvadrato plotas yra vienas, tada kiekviename lygyje kvadratų plotų suma taip pat bus lygi vienetui. Klasikinis Pitagoro medis turi 45 laipsnių kampą, tačiau apibendrintą Pitagoro medį galima sukonstruoti ir naudojant kitus kampus. Toks medis vadinamas vėjo pučiamu Pitagoro medžiu. Jei piešiate tik segmentus, kurie kažkaip jungia tam tikrus trikampių „centrus“, gausite nuogą Pitagoro medį.

Kitas pavyzdys būtų garsusis „Pitagoro medis“. Jis dažnai vaizduojamas taip, kaip parodyta fig. 3.2. Kiekvieno šio medžio stačiojo trikampio vidinis kampas yra 45°.

Vėlgi, mes naudosime atsitiktinių skaičių generatorių, kad sukurtume bendresnę programą, kuri gali generuoti ne tik ryžius. 3.2, bet ir generuoja ne tokius taisyklingus medžius. 45° kampai Fig. 3.2, paprastai, bus nustatytas atsitiktinai intervale tarp (45 - delta)° ir (45+ delta)° , kur yra vertė delta pateikiamas kaip įvesties parametras kartu su parametru n, kuris nustato rekursijos gylį. Įprasta versija, parodyta pav. 3.2, gautas nurodant delta= 0 ir n = 7. Paveiksle parametras P nustato trikampių skaičių kelyje nuo šaknies iki medžio lapų. Programos šerdis bus rekursinė funkcija kvadratas_ir_trikampis ("kvadratas ir trikampis") su parametru n, kuris nustato rekursijos gylį, kaip pirmąjį argumentą. Jei parametro n reikšmė yra didesnė už nulį, tai funkcija kvadratas_ir_trikampis, kaip rodo jos pavadinimas, nubraižys kvadratą ir trikampį, o tada dar du kartus išsikvies su atitinkamais naujais argumentais, iš kurių pirmasis yra nustatyta į n-1. Kvadrato dydį ir padėtį visiškai lemia keturi parametrai: X0, Y0, a ir j (žr. 3.3 pav.). Norėdami nubrėžti trikampį, turite žinoti kampą a. Šis kampas, išreikštas laipsniais, yra lygus 45+nuokrypis, kur nuokrypis lygus vienam iš sveikųjų skaičių serijos -delta, -delta+I, ... , delta, parinktos atsitiktinai. Fig. 3.3 būtini taškai numeruojami iš eilės 0,1,2,3,4. Taško O koordinatės X0, Y0 nurodytos funkcijos iškvietime. Norėdami apskaičiuoti likusius taškus, pirmiausia atsižvelgiame į paprastesnę situaciją, kai j = 0, tai yra, kai kvadrato kraštinė 0 1 užima horizontalią padėtį.


Šioje pozicijoje labai lengva nustatyti taškų koordinates. Jie saugomi x ir y masyvuose. Tada visa konstrukcija pasukama aplink tašką O kampu j. Sukimo rezultatas įrašomas į xx ir yy masyvus.

/* PYTH_TREE: Pitagoro medžio variantas */

#include "math.h"

#include "stdlib.h"

#include "time.h"

#define pi 3.1415927

#include "stdio.h"

struct (float xx; float yy; int ii;) s;

void pfopen())( fp=fopen("scratch", "wb"); )

negalioja pmove(float x, Float y)



(s.xx=x; s.yy=y; s.ii=0; /* 0 = rašiklis aukštyn */ /* 0 = rašiklis aukštyn */

fwrite(&s, s dydis, 1, fp);

void pdraw(float x, float y)

(s.xx=x; s.yy=y; s.ii=1; /* 1 = rašiklis žemyn */ /* 1 = rašiklis žemyn */

fwrite(&s, s dydis, 1, fp);

void pfclose())( fclose(fp); )

void square_and_triangle(int n, slankioji x0, slankioji y0, flot a, flot phi)

( plaukioti x, y, xx, yy, cphi, sphi, c1, c2, b, c,

alfa, kalfa, salfa;

int i, nuokrypis; /* phi ir alfa radianais */

/* delta laipsniais */

if(n==0) grąžinti; /* kampai phi ir alfa radianais */

/* kampas delta laipsniais */

nuokrypis=rand()%(2*delta+1)-delta;

alfa=(45+nukrypimas)*pi/180,0;

x=x=x0; x=x=x0+a;

y=y=y0; y=y=y0+a;

calpha=cos(alfa); salfa=sin(alfa);

c=a*calpha; b=a*salfa;

/* Pasukimas apie (x0, y0) per kampą phi ; */

/* Pasukite aplink tašką (x0, y0) kampu phi;*/

cphi=cos(phi); sphi=sin(phi);

c1=x0-x0*cphi+y0*sphi;

c2=y0-x0*sphi-y0*cphi;

už (i=0; i<5; i++)

(xx[i]=x[i]*cphi-y[i]*sphi+c1;

yy[i]=x[i]*sphi+y[i]*cphi+c2;

už (i=0; i<5; i++) pdraw(xx[i],yy[i]);

kvadratas_ir_trikampis(n-1, xx, yy, c, phi+alfa);

kvadratas_ir_trikampis(n-1, xx, yy, b, phi+alfa-0,5*pi);

pfopen(); laikas(&seed); srand((int)sėkla);

printf (" Nustatyti delta kampą laipsniais (0< delta < 45) ");

scanf("%d", &delta);

printf(" Nustatyti rekursijos gylį n "); scanf("%d", &n);

kvadratas_ir_trikampis(n, 0,0, 0,0, 1,0, 0,0);

Ši programa sukuria failą NURAŠYTI kuriuos turi apdoroti G programa PLOT iš paskaitos 2. Grafinis programos rezultatas skirtas delta= 30 ir n = 7 parodyta fig. 3.4.

Pitagoro medis yra fraktalų tipas, pagrįstas figūra, žinoma kaip Pitagoro kelnės.

Įrodydamas savo garsiąją teoremą, Pitagoras sukonstravo figūrą, kurioje kiekvienoje stačiojo trikampio kraštinėje buvo kvadratai. Laikui bėgant ši Pitagoro figūra virto visu medžiu. Pirmasis Pitagoro medį Antrojo pasaulinio karo metais sukonstravo A. Bosmanas, naudodamas paprastą piešimo liniuotę.

Viena iš pagrindinių Pitagoro medžio savybių yra ta, kad kai pirmojo kvadrato plotas yra vienas, tada kiekviename lygyje kvadratų plotų suma taip pat bus lygi vienetui. Klasikinis Pitagoro medis turi 45 laipsnių kampą, tačiau apibendrintą Pitagoro medį galima sukonstruoti ir naudojant kitus kampus. Toks medis vadinamas vėjo pučiamu Pitagoro medžiu. Jei piešiate tik segmentus, kurie kažkaip jungia tam tikrus trikampių „centrus“, gausite nuogą Pitagoro medį.

Mandelbroto rinkinys yra klasikinis fraktalo pavyzdys... Vikipedija

HTML HTML ir HTML5 Dinaminis HTML ... Vikipedija

Mandelbroto rinkinys yra klasikinis fraktalo pavyzdys. Fraktalas (lot. fractus crushed) yra terminas, reiškiantis geometrinę figūrą, turinčią savitumo savybę, tai yra sudarytą iš kelių dalių, kurių kiekviena yra panaši į visą. figūra... ... Vikipedija

Levy kreivės fraktalas. Pasiūlė prancūzų matematikas P. Levy. Pasirodo, jei paimsite pusę formos / kvadrato, o tada pakeisite kiekvieną pusę tuo pačiu fragmentu ir, kartodami šią operaciją, ... Vikipedija

Newton Pool ... Vikipedija

Cayley grafikas yra grafikas, sudarytas iš grupės su išskirtine generatorių sistema. Pavadintas Caylee vardu. Apibrėžimas Tebūnie duota diskrečioji grupė G ir generatorių sistema S. Tarkime, kad S = S − 1, tai yra kiekvienam. G grupės Cayley skaičius pagal sistemą... ... Vikipedija

Grafikas, sudarytas iš grupės su tam skirta generatorių sistema. Pavadintas Caylee vardu. Apibrėžimas Leiskite pateikti diskrečiąją grupę ir generatorių sistemą. Tarkime, kiekvienam. Graf Cayley grupė ... Vikipedija

Senovės Irano religija senovės šaltiniuose. Straipsnyje apžvelgiama informacija, gauta iš senovės autorių (senovės graikų, lotynų ir iš dalies armėnų bei sirų) 5 amžiuje prieš Kristų. e. VI mūsų eros amžius e. apie Achemenidų eros Irano tautų religiją, partus ir valdžią ... Vikipedija

Jame gyvenusių tautų kultūra senovėje, IV I tūkstantmetyje pr. e., Mesopotamija Mesopotamija Tigras ir Eufratas (šiuolaikinio Irako teritorija), šumerai ir akadai, babiloniečiai ir asirai, sukūrę dideles Šumero, Akado, Babilonijos valstybes (žr.... ... Didžioji sovietinė enciklopedija

Knygos

  • Vasaros pabaigoje Vera Orlovskaja. Naujoji Veros Orlovskajos knyga VASAROS PABAIGOJE ir toliau stebina skaitytoją savo formų įvairove ir tuo, ką sufleruoja kai kurie pavadinimai: PITAGORO FILOSOFIJA SKAIČIAIS, SVAJŲ MEDIS, SIMFONIJA Nr. 1...
  • R-funkcijos kaip įrenginys taikant fraktalinę geometriją, A. V. Tolok. R-funkcijų teorijos matematinis aparatas naudojamas fraktalinės geometrijos objektams apibūdinti funkcijomis ɷ(x) = 0, x ∈ En, kur ɷ(x) turi vienos analitinės išraiškos formą. Iki…

Sveiki, draugai, besidomintys fraktalais ir kt. Nuo šios akimirkos pradedu įrašų seriją, kurioje paaiškinsiu paprasčiausių fraktalų konstravimo principus. Studijuoti visada įdomu ir aš tau padėsiu: nuo šiol pažinsime daug daug fraktalų. Lorenco atraktorius straipsnyje apie chaosą buvo to pavyzdys. Ir šiandien aš jums papasakosiu apie Pitagoro medį.

Taigi kas tai? Pitagoro medis yra paprasčiausias fraktalas, kurį galima nupiešti ant popieriaus. Bet kodėl šis fraktalas vadinamas Pitagoro medžiu? Faktas yra tas, kad čia yra ryšys su Pitagoro teorema - vienu iš Euklido geometrijos pagrindų. Prisimeni ją? Priminsiu: a2 + b2 = c2 (kojelių ilgių kvadratų suma lygi hipotenuzės ilgio kvadratui). Ši teorema žinoma nuo seniausių laikų, šiuo metu yra daugiau nei 400 teoremos įrodymų, ir tik Pitagoras pirmasis ją įrodė geometriškai. Jis pastatė tokią figūrą: paėmė stačiakampį trikampį ir jo šonuose nubrėžė kvadratus. Ši figūra dar vadinama „Pitagoro kelnėmis“:

Jei tęsime šią konstrukciją rekursyviai, gausime Pitagoro medį:
1-oji iteracija (mūsų Pitagoro medyje kampas yra 45 laipsniai):


Antroji iteracija:


Trečias pakartojimas:


Dešimta iteracija:


Svarbi Pitagoro medžio savybė: jei pirmojo kvadrato plotas lygus vienetui, tai kiekviename lygyje kvadratų plotų suma taip pat bus lygi vienetui.
Jei kampas pakeičiamas nuo 45 laipsnių, galima sukonstruoti kitų tipų Pitagoro medžius.
Štai, pavyzdžiui, vadinamasis „vėjo pūstas Pitagoro medis“:


Kai kurie fraktalinės grafikos generatoriai įgyvendina fraktalų konstravimo formulę, pagrįstą Pitagoro medžiu. Šis įgyvendinimas labai primena IFS sistemą, ypač jei kvadratus pakeičiate stačiakampiais arba pailgomis formomis.
Tai viskas šiandien, iki kitų susitikimų, kuriuose bus daug kitų įdomių fraktalų)