Создание фракталов

Сущность, основные свойства и классификация фракталов. Построение триадной кривой Коха и "дракона" Хартера-Хейтуэя, треугольник Серпинского и множество Жюлиа. Сущность L-кодирования. Создание программы на языке BorlandPascal для построения фракталов.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 13.04.2015
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

F := (id()+translate(1/4,0)*rotate(90)+translate(1/4,1/4)+

translate(1/2,1/4)*rotate(-90)+translate(1/2,0)*rotate(-90)+

translate(1/2,-1/4)+translate(3/4,-1/4)*rotate(90)+

translate(3/4,0))*scale(1/4);

//build F F(Segment = scale(1/2)*(id()+translate(1,0,0))Segment);

b camera position (0.42,-0.17,-1.3) direction(0,0,1) vertical(0,1,0) fov(50);

light color(1,1,0,3) position(1, 1,-3);

light color(1,1,0,1) position(3,-1,-1);

ambient(1,1,1,0.05);

f0:=scale(sqrt(1/2));

f1:=translate(1,0,0)rotate(-135)f0;

f2:=rotate(-45)f0;

set F=(f1+f2)F;//Dimension of boundary = 1.5236270862

build f1*F;

color(2,1,0);

build f2*F;

color(0,1,0);

uild MinkowskiCurve = F(MinkowskiCurve);

Кривая дракона Хартера-Хейтуэя:

camera position (0.42,-0.17,-1.3) direction(0,0,1) vertical(0,1,0) fov(50);

light color(1,1,0,3) position(1, 1,-3);

light color(1,1,0,1) position(3,-1,-1);

ambient(1,1,1,0.05);

f0:=scale(sqrt(1/2));

f1:=translate(1,0,0)rotate(-135)f0;

f2:=rotate(-45)f0;

set F=(f1+f2)F;//Dimension of boundary = 1.5236270862

build f1*F;

color(2,1,0);

build f2*F;

color(0,1,0);

Снежинка Коха:

camera position (0,0,-2.3745022657807842) direction(0,0,1) vertical(0,1,0) fov(50);

light color (1,1,1,2) position (1, 1,-3) shadows(0);

light color (1,1,1,4) position (3,-1,-1) shadows(0);

ambient(1,1,1,.05);

background(0,1,1,0);

s=1/sqrt(3);

f1 := translate(1/2,s/2,0)*rotate(-150);

f2 := translate(1,0,0)*rotate(150);

f3 := translate(-1/2, 1/s/2,0)*rotate(-30);

f4 := translate(-1/2,-1/s/2,0)*rotate( 90);

f5 := translate(1,0,0)*rotate(-150);

set Curve = (f1+f2)scale(s)Curve;

build Snowflake = (f3+f4+f5)scale(1/s)Curve; color (0,1,1);

//build (1+s*rotate(30))*Snowflake;

build S=s*rotate(30)*(Snowflake+S); color (0,1,0);

Треунольник Серпинского:

// Sierpinsky's triangle

camera position (0,0.24,-1.6) direction(0,0,1) vertical(0,1,0) fov(50);

light color(2,2,0) position(1,1,-3);

light color(4,4,0) position(3,-1,-1);

ambient(1,1,1,0.05);

background(0,1,1,0.3);

a=sqrt(2)/3;

b=sqrt(6)/3;

f1 := translate(0,2*a,0) scale(0.5) translate(0,-2*a,0);

f2 := translate( b,-a,0) scale(0.5) translate(-b,a,0);

f3 := translate(-b,-a,0) scale(0.5) translate( b,a,0);

build F=(f1+f2+f3) F;

Губка Менгера:

camera position (-1.6,-1.6,-1.6) direction(1,1,1) vertical(0,1,0) fov(50);

light color (0,1,1,.35) direction (1, 1,1);

ambient(1,1,1,.05);

background(0,1,1,0.0);

section(1,1,1,0);

T:=translate;

build Sponge=scale(1/3)*(

T(-2,-2,-2)+T(0,-2,-2)+T(2,-2,-2)+

T(-2, 0,-2)+ T(2, 0,-2)+

T(-2, 2,-2)+T(0, 2,-2)+T(2, 2,-2)+

T(-2,-2, 0)+ T(2,-2, 0)+

T(-2, 2, 0)+ T(2, 2, 0)+

T(-2,-2, 2)+T(0,-2, 2)+T(2,-2, 2)+

T(-2, 0, 2)+ T(2, 0, 2)+

T(-2, 2, 2)+T(0, 2, 2)+T(2, 2, 2)

)*Sponge;

ПРИЛОЖЕНИЕ 10

Построение L-фрактала возможно по алгоритму построения множества Жюлиа, это множество порождает свой фрактал исходя из известных начальных значений. Для описания множества нужно задать значения C, комплексного числа (в форме a + (b * i)). Начальное значение Z также соответствует комплексному числу. Действительная часть данного числа соответствует координате x, а мнимая координате y. Чтобы нарисовать фрактал, нужно последовательно применить уравнение z' = лz(1-z) для каждого из значений Z из ряда (0,…,n).

Для данной задачи л возьмём равное 0.85+0.6i, чтобы отображение фрактала было более плотным.

#include <conio.h>

#include <graphics.h>

#include <math.h>

#include <complex.h>

void main() {

int gd = DETECT, gm;

int mx, my;

complex l, z;

int it=35, max=100;

int k;

initgraph(&gd, &gm, ""); // подключение графики

mx = getmaxx() / 2; // масштаб

my = getmaxy() / 2;

for (int x = -mx; x <= mx; x++) { // определение комплексных л и z

for (int y = -my; y <= my; y++) {

z = complex(x*0.01, y*0.01);

l = complex(0.85, 0.6);;

k = 0;

while ((k < it)&&(abs(z) < max)) { // реализация формулы

z = l*z*(1-z);

k++;

}

if (k<it) putpixel(mx+x, my+y, k % 16); // прорисовка

}

}

getch();

closegraph();

return;

}

Размещено на Allbest.ru


Подобные документы

  • Классификация основных фракталов: алгебраические, геометрические и стохастические. Рассмотрение нескольких распространённых видов фракталов: решетка и треугольник Серпинского, крива Коха, фрактал и множество Мандельброта, кривая Дракона и модель Джулии.

    курсовая работа [735,1 K], добавлен 11.02.2015

  • Определение и классификация фракталов. Геометрические, стохастические, алгебраические их виды. Множество Мандельброта, множество Жулиа. Другие способы получения алгебраических фракталов. Метод побитовых операций. Реализация алгебраических фракталов.

    лекция [1,2 M], добавлен 29.12.2011

  • Изучение основных алгоритмов генерации различных видов фракталов. Выбор языка и среды программирования. Характеристика структурных элементов растрового графического редактора фракталов. Описание интерфейса приложения, порядок редактирования изображений.

    курсовая работа [1,2 M], добавлен 04.04.2014

  • Понятие фрактала и фрактальной геометрии. Роль фракталов в машинной графике, самоподобие как основное свойство. Области применения фракталов. Учение о сложных нелинейных динамических системах (теория хаоса). Интеграция детерминированных фракталов и хаос.

    курсовая работа [1,0 M], добавлен 20.08.2009

  • Сведения о фракталах, способы их построения. Неизменность геометрических особенностей фрактала при изменении масштаба. Алгоритм построения фрактала и его реализация в программе. Длина береговой линии и понятие фрактала. Салфетка и ковер Серпинского.

    курсовая работа [579,4 K], добавлен 12.01.2012

  • Понятие фрактала, способы его использования в компьютерной науке, в механике жидкостей, в телекоммуникациях, медицине, физике поверхностей, биологии. Множество Мандельброта и фрактальное дерево. Разработка кода программы в среде программирования Delрhi.

    курсовая работа [1,0 M], добавлен 09.06.2013

  • Виды компьютерной графики: растровая, векторная, фрактальная и трёхмерная. Основные понятия компьютерной графики. Кодирование аудиоинформации, основные аудио форматы. Смешение сигналов и видео форматы. Разработка программы построения фракталов.

    дипломная работа [1,2 M], добавлен 14.01.2015

  • Основы программирования графики на языке Паскаль. Способы решения графических программ и рекомендации к их решениям. Связь между декартовой и полярной системами координат. Алгоритм переноса объекта. Построение фракталов, классической пыли Кантора.

    курсовая работа [3,3 M], добавлен 24.04.2013

  • Понятие фрактала, принципы создания изображения. Разработка алгоритма и режимов генерации ландшафта. Описание программы FracLandscapes.exe. в среде разработки Delphi 10. Примеры построения ландшафта с использованием различных режимов и количества изгибов.

    курсовая работа [688,9 K], добавлен 04.05.2014

  • Редакторы для растровой графики. Программы для работы с векторной графикой. Возможности фракталов в художественной графике, при описании свойств сложных природных объектов (турбулентных потоков), финансовом анализе и в других прикладных дисциплинах.

    лекция [785,4 K], добавлен 28.08.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.