16306

Построить фрактал треугольник Серпинского

Домашняя работа

Информатика, кибернетика и программирование

Построить фрактал треугольник Серпинского Самым знаменитым примером площадного геометрического фрактала является треугольник Серпинского строящийся путем разбиения треугольника необязательно равностороннего средними линиями на четыре подобных треугольника и

Русский

2013-06-20

40.5 KB

19 чел.

Построить фрактал треугольник Серпинского

Самым знаменитым примером площадного геометрического фрактала является треугольник Серпинского , строящийся путем разбиения треугольника, необязательно равностороннего – средними линиями на четыре подобных треугольника, исключением центрального и рекурсивного разбиения угловых треугольников до получения площадных элементов желаемого разрешения.

Преимущество использования рекурсии очевидно - без рекурсии построение такого рисунка состоящего более чем из шести уровней весьма проблематично, а рекурсия позволяет увеличивать количество уровней, не ограничиваясь минимальными размерами самого нижнего уровня. Например, с помощью этой программы можно увеличить количество уровней до пятнадцати при этом будет ощутима только некоторая задержка при выводе изображения на экран, а вот без рекурсии такой рисунок построить будет практически невозможно, так как изображение будет состоять более чем из тридцати одной тысячи треугольников.

Алгоритм построения треугольника Серпинского довольно прост:
1) строится большой внешний треугольник (А);
2) строится треугольник, получающийся при соединении середин сторон большого треугольника (Б);
3) строятся треугольники, получающиеся аналогично элементу Б, но в качестве большого треугольника берутся треугольники,
образованные элементами А и Б.
Изображение состоит из однотипных элементов, связанных между собой зависимостью каждого следующего элемента от координат предыдущего.

Данная программа позволяет рисовать изображение в зависимости от введённого пользователем n уровней.

Uses Crt,Graph;

{$S+}

Var x1,y1,x2,y2,x3,y3, a,b,n: integer;

{процедура, которая делит внешний треугольник на части в зависимости от заданного n. Эта процедура выполняется до тех пор пока n не станет равное 0}

PROCEDURE TRI(x1,y1,x2,y2,x3,y3, N: integer);  

Var x12,y12,x23,y23,x31,y31: integer;

Begin If N=0 then EXIT;

 

      x12:=(x1+x2) div 2;    y12:=(y1+y2) div 2; { вычисление координат нового треугольника}

      x23:=(x2+x3) div 2;    y23:=(y2+y3) div 2;

      x31:=(x3+x1) div 2;    y31:=(y3+y1) div 2;

      setcolor(15-n); delay(25000);

MoveTo(x31,y31); LineTo(x12,y12); {выводна экран нового треугольника}

                LineTo(x23,y23);

                LineTo(x31,y31);

if keypressed then halt;

TRI(x1,y1,x12,y12,x31,y31, N-1);

TRI(x2,y2,x12,y12,x23,y23, N-1);

TRI(x3,y3,x31,y31,x23,y23, N-1)

 end;

Begin write('n= ');readln(n);  {пользователем вводится колличество уровней n}

     a:=detect;b:=detect;     {подключение графики}

     InitGraph(a,b,'c:\lg\bgi');

x1:=320; y1:=0; x2:=639; y2:=479; x3:=0; y3:=479; {координаты боьшого внешнего треугольника (А)}

Moveto(x1,y1);   Lineto(x2,y2);     {на экран выводится внешний треугольник}

                LineTo(x3,y3);

                LineTo(x1,y1);

outtextxy(10,10,'Press any key for exit ...');

TRI(x1,y1,x2,y2,x3,y3, n);   {вызов процедуры}

ReadKey;  CloseGraph; end.

 


 

А также другие работы, которые могут Вас заинтересовать

19805. Поняття про математичне програмування 13.95 KB
  Математичне програмування складова частина прикладної математичної дисципліни Дослідження операцій. До інших основних розділів цієї дисципліни відносяться теорія марковських випадкових процесів теорія масового обслуговування теорія ігор методи сітьового плану...
19806. Поняття цільової функції 13.43 KB
  Цільова функція z x1 x2 ... x n функція що виражає залежність прийнятого критерію оптимальності від керованих змінних. Критерій оптимальності є мірою наближення розвязку до поставленої мети. В економічних задачах як правило таким критерієм виступає показник ефективн
19807. Поняття лінійного програмування 14.63 KB
  Лінíйне програмувáння LP англ. Linear Programming один з важливих розділів дослідження операцій що зводиться до оптимізації лінійної цільової функції на множині яка описується лінійними рівняннями і нерівностями. Лінійне програмування є окремими випадками математичного п
19808. Задача про оптимальне використання ресурсів 15.56 KB
  Задача лінійного програмування як задача розподілу обмежених ресурсів. Зауважимо що задача ЛП у багатьох випадках виявляється асоційованою із задачею розподільчого типу яка спрямована на пошук найбільш вигідного способу розподілу обмежених ресурсів за декількома в
19809. Геометричне розв’язання задачі лінійного програмування 16.74 KB
  Kак известно общая задача линейного программирования со стоит в поиске значений переменных удовлетворяющих некоторым линейным ограничениям и обеспечивающих наибольшее наимень шее значение заданной линейной функции. Например требование: максимизировать Lx1...
19810. Економіко-математична модель транспортної задачі 17.89 KB
  Транспортная задача ставится следующим образом: имеется m пунктов отправления А1 А2 ... Аm в которых сосредоточены запасы какихто однородных грузов в количестве соответственно а1 а2 ... аm единиц. Имеется n пунктов назначения В1 В2 ... Вn подавшие заявки соответственно на...
19811. Задача лінійного програмування 29 KB
  Задача лінійного програмування Зада́ча ліні́йного програмува́ння задача оптимізації з лінійною цільовою функцією та допустимою множиною обмеженою лінійними рівностями або нерівностями. Тобто необхідно мінімізувати 1 при обмеженнях 2 3 4 де cj ...
19812. Знаходження оптимального розподілу поставок методом оцінки клітин 28 KB
  2.Знаходження оптимального розподілу поставок методом оцінки клітин Один з найбільш простих методів вирішення транспортної задачі розподільний метод.Нехай для транспортної задачі знайдено початкове опорне рішення і обчислено значення цільової функції на цьому ріше
19813. Перерозподіл поставок 26 KB
  1.Перерозподіл поставок. Пошук оптимального плану перевезення як і в загальній задачі ЛП починається з перебування початкового базисного рішення початкової вершини опуклого багатогранника області припустим