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