ПредишенСледващото

Фракталите в C ++ за Dummies сгъстяват.
"Руската следа" в теорията на фракталите

Терминът "фрактал" е въведена в ежедневието на полски произход френски математик Беноа Манделброт през 1975. В книгата си "The фракталната геометрия на природата", пише той, "Fractal е структура, съставена от части, които по някакъв начин са подобни на цялото."

Фрактали за гъсти Dummies

Fractal може да подлежи на структурата на "полусходство". Типичен пример - руската дървена играчка Матрьошка вътре, които са подобни фигури на по-малък размер. Руската "фрактал" боядисани Матрьошка се появи в Русия в края на XIX век. Малко хора знаят, че не само Лефти обути бълхи, но също така построил кукла гнездене на размера на една бълха. И Чубайс в момента работи по кукли нано гнездене. Така че скоро ще бъде възможно да се говори за "руска следа" в теорията на фракталите!

През 1872 г., немски математик Карл Вайерщрас конструирана непрекъсната функция под формата на безкраен тригонометрични серия, която е диференцируема никъде. Те решили проблема все още притеснява коварни въпроси на учениците за изпита по математика: "Ако функцията е непрекъсната - това е диференцируема?".

Във всеки случай се изясни. Ако непрекъсната крива, има точка на прекъсване, а след това на този етап не разполага с тангента. Функцията чиято графика е крива не е диференцируема в точката на счупване! Така че планирате Вайерщрас "прегънат неузнаваемост" функция - във всички точки!

През 1904 г. шведският математик Хелге фон Кох в статията "На непрекъсната крива, които нямат допирателна", описан друг непрекъсната крива, счупен във всички точки, което се дължи на простотата на строителство е забележителен пример за фрактал. Това ние започваме с проучването на фрактали Кох крива.

Фрактали в C ++ за СН-

крива Кох във всички подробности за нейната красота

За да получите най-кривата Кох, права линия, се разделят на три равни части и централната сегмент построи равностранен триъгълник, а след това извадете основата на триъгълника. Получената прекъснатата линия от четири сегмента е шаблон (модел генератор), който се основава на кривата на Koch.

Шаблонът се прилага към всеки от четирите сегмента на шаблон, ние получаваме първо приближение, който се състои от 16 сегмента. Освен шаблон прилага за всеки сегмент на кривата, получена, намиране на втория приближение, състояща се от 64 сегменти. В срока, ние получаваме кривата Кох.

стандартна програма ще бъдат използвани за изграждането на кривата на Кох и останалата част на фрактали в тази статия, включващ

Функция за създаване на шаблон Traf

Имаме нужда от функция, която координатите на крайните точки AB изчислява координатите на всички възлови точки на шаблона. За да създадете такава функция ще изисква познания на ниво 9-ти клас на гимназията. Формулите за координатите на всички възлови точки на кривата на Кох шаблон са показани в дясно.

Фрактали за гъсти Dummies

В ляво е функция Traf. която има пет аргументи: координатите на крайни точки (Ха Ya.), (ХЬ YB.) и параметър к. Координатите на възловите точки се съхраняват в масивите на клетки: KNX [] и kny [] (думата «възел» - «възел").

При изграждането на шаблона (нулев ред приближение) приемем, к = 0, то координатите на спада на първоначалните множеството клетки. С други приближения използва различен от нула стойност на аргумент к, за да се избегне налагането на координати.

Функция на изграждане фрактал Fract

Тази функция се основава фрактал. По подразбиране, в центъра на правоъгълна Декартова координатна система се намира в центъра на прозореца и положителната ос пресечната границите на отделните сегменти. Ако е необходимо, операторът gluOrtho () може да се промени координатна система. Как да се направи това, е описано подробно в статията «OpenGL в C ++ за Sr--".

За да се разбере по-добре структурата на тази функция, ние го пиша отделно за нула и първите приблизителни. За да се изчисли само за сближаване нулев ред (програмата по-долу в ляво), контрол е преминал функция Traf. и централната хоризонтална линия на прозорец (-1, 0), В (1, 0) се превръща в шаблон. Тъй к = 0, координатите на възлите са в първите пет клетъчни редици KNX [] и kny [].

Фрактали за гъсти Dummies

За да се изчисли само първо приближение (програмата в горната част вдясно) се добавят два за изявление цикъл. Произход запаметява получен в предишния етап координира шаблони възли kn1x масиви [] и kn1y [] (обявени в функция, тъй като никъде другаде, използвани). Второто твърдение разделя шаблон върху възлите на сегментите на шаблона. Аргумент к всеки път, умножена по 4, така че редиците KNX [] и kny [] са краищата на всички R = 16 сегменти на първо приближение.

Всички следващи приближения изискват всеки път, за да добавите две от един и същ оператор, така че е препоръчително да се създаде единен процес използвате външен оператор цикъл. Тук е функция в общия случай:

Фрактали за гъсти Dummies

R Брой сегменти във всяка сближаване равен на броя 4 в съответната степен.

Рисуване функция Draw и основната функция на основната програма

Тези функции са описани подробно в статията OpenGL в C ++ за Sh--.

Command е зелена зона задейства процес рисунка функция Draw. Вътре в зелената зона на първите две твърдения улавят дебелината на цвят и линия. скоби оператора glBegin () / glEnd () включват координира точки, които посредством GL_LINES аргумент двойки са свързани с прави линии.

Фрактали за гъсти Dummies

Всички команди са разположени извън основната функция на зелената зона. вграждане OpenGL библиотека в C ++ и да го доведе в действие. Операторите в паметта на зелена зона последователно: местоположението на прозореца на дисплея, неговия размер, дават името на прозореца, тя се отвори, и задаване на цвят. След това влезе в игра функция Fract и Draw.

Ето как изглежда:

Установи компенсира параметър към клетките. Брой на сегменти в приближение R п и броя на приближения.

Ние сме пускането на цялата програма, в едно устройство

Фрактали за гъсти Dummies

Фрактали за гъсти Dummies

Фрактали за гъсти Dummies

Фрактали за гъсти Dummies

Фрактали за гъсти Dummies

Фрактали за гъсти Dummies

Може да се получи и 5-ти приближение, но това няма да направи видими промени в чертежа.

Фрактали в C ++ за СН-

Снежко и Antisnezhinka Кох.
"Сто Acre Tree чайник"

Ние прилагаме шаблон Кох крива на страните на равностранен триъгълник. В резултат на това, ние получаваме първо приближение. Разделете шаблони сегменти следващото приближение и ограничаване на Кох снежинка.

За Кох снежинка да използвате фрактал програма. като направи малки промени във функцията на изграждане фрактал.

Функция на изграждане фрактал Fract

Тази функция е различен от този на горната част на кривата на Koch (първите шест редове).

Определяне координатите на краищата на долната основа на триъгълник (-0.75, -0.5), В (0.75, -0.5) и да намерят третия връх С от условието, че полето триъгълник.

Нанесете началото шаблон за всички страни на триъгълника: три пъти се харесват на функция Traf. придават стойност на параметъра к = 0, 4, 8. получи нулев порядък сближаване на сегментите 12 с координатите на възлите в съответните клетъчни редици. На следващо място, изграждането на фракталната настъпва вече известен сценарий.

Фрактали за гъсти Dummies

Кох снежинка и Antisnezhinka

Фрактали за гъсти Dummies

Ако шаблон проектиран по такъв начин, че триъгълниците са насочени навътре, ние получаваме Antisnezhinku Кох. За тази цел, функция Traf фрактал програма ще се промени в средата на третото и четвъртото оператори знаци (те са отбелязани с червено) от положителна на отрицателна. Ето Antisnezhinka Кох във втория и петия приближения:

Фрактали за гъсти Dummies

Това беше на Великден. Докато бях в оператора за промяна на знаци от плюс до минус, за да получите Antisnezhinku Кох, започва излъчване по телевизията на слизането на Светия Огън в Йерусалим. Този поглед е така ми повлия, че може да се промени само един символ. Тя се появи на екран "божи дар" страхотно фрактал! Аз ще му се обадя в нашата чест - "Сто Acre Tree чайник"! Наслаждавайте се!

Фрактали в C ++ за СН-

"Функция, матрьошка". създаване на дърво

При конструирането на фрактали често използват "функция-матрьошка", които търсят "за себе си". В този случай, не е необходимо за създаване на шаблони, тъй като тя вече е положен в тези функции.

Ето един прост малко схема "Матрьошка-функция":

Фрактали за гъсти Dummies

Това е функция на един аргумент: Matr (п). Вътре оператора на фигурни скоби цикъл го нарича себе си. намаляване на аргумента за 1. Без програмата за условен оператор "безкраен цикъл."

Тази функция ще бъде п пъти "не са разрешени" от примката, всеки път, намаляване н по един. След достигане на параметъра п нула условно затвори функции лечение на себе си, и програмата е "законно" от цикъла. Тя тогава п пъти "Unauthorized" влиза в един цикъл, като всеки път се увеличава п от 1. Ако по време на входа Оказва се, че аз = 0. След това в този момент цикълът продължава. Това ще се случи, докато н достига референтната стойност. "Функция-гнездене кукла" генерира "разклонения" процес, който се използва в строителството на фрактали.

Фрактали за гъсти Dummies

За създаване на фракталната клон на дърво помисли AB с дължина L и ъгъл на наклона на хоризонталната ос. Ако известни координатите на отправна точка А. Координатите на крайната точка може да се изчисли средният успех ученик 7B. Формулите за кВ и YB се използват в строителството на фракталната функции Fract.

Криви Леви и Дърво на Питагор са тясно свързани с фрактали, които се наричат ​​драконите, защото на тяхната прилика с изображения на китайски дракони.

Начини за създаване на криви Леви и Питагор Tree са сходни. Те се различават само листове, които са прикрепени към външната страна на двете рамена на правоъгълен триъгълник.

Ако тези листове са последователно насочено към различни страни на краката, тогава получат чакали.

Dragons острови Леви

Ние започваме да се изгради Curve Леви. но шаблонът е прикрепен към краката на правоъгълен триъгълник, него ръководни последователно в различни посоки. За да направите това, програмата такса в Fract функцията втори отчет, когато се отнася до самия суап точките B и C (програмата те са маркирани в червено). Операторът трябва да изглежда: Fract (х Б. у Б. х С у С п-1). На Дракона се появява на екрана.

Фрактали за гъсти Dummies

За Dragons изглеждаха много красиви на екрана, е необходимо да се коригира цвета на линията и да промените скоба програма оператор (означени с цифри).

Същото може да се направи с острова и да получите Levi "остров" Dragons:

Фрактали за гъсти Dummies

Изграждане на Дървото на Питагор. но директно на екрана в противоположни страни на краката на триъгълник фен, и на екрана се появи Dragon Питагор. За да направите това, pifagor програма във функцията на изграждането на фракталната Fract в първото твърдение се отнася до функция Traf под знака на суапа за цикъл аргументи масив (маркирани в червено). Операторът трябва да изглежда: Traf (KNX [Ь + 1], kny [Ь + 1], KNX [Ь] kny [Ь], 5 * R).

Фрактали за гъсти Dummies

Dragon в ляво на фигурата на Питагор в четвъртия сближаване с цвят "фен" на триъгълници. Въпреки това, той е по-скоро като летене по борба мисия далечни разстояния бомбардировач Ту-22M3. И на дясната фигура - боядисани дракон Питагор от 10-ти подход.

Фрактали в C ++ за СН-

Дай ми една жена, бяло, бяло.
Аз го имам в синьо ремонтирам

Ляв да изпълни обещанието и да помогне на поета да променят бяло, бяла жена в синьо. Жената на снимката от Анри Матис, наречена "Nude с портокали." След развитие на OpenGL и C ++, ние можем да се направи Кох снежинка и Antisnezhinku лесно. "Yolka гъста чайник" Curve Леви. "Blow вятъра" Питагор Дървото и да го превърне в дракон.

Фрактали за гъсти Dummies

Въпреки това, когато се опитате да променя бяло, бяло жена в синьо не успее да произведе "дракон, запечени с портокали." Въпросът е, защо? И защо не? Това е много лошо! Остава само да работи в продължение на бутилка "Putinka"!

Това се случи съвсем случайно, както е било планирано.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!