16306

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

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

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

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

Русский

2013-06-20

40.5 KB

18 чел.

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

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

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

Алгоритм построения треугольника Серпинского довольно прост:
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.

 


 

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

8125. Методы неинформированного поиска. Поиск в ширину, в глубину, однородной стоимости, ограниченный по глубине поиск 142.53 KB
  Методы не информированного поиска. Поиск в ширину,в глубину, однородной стоимости, ограниченный по глубине поиск. Основная проблема в области поиска - нахождение хорошей стратегии поиска для заданной задачи. Страт...
8126. Методы неинформированного поиска. Поиск с итеративным углублением, двунаправленный поиск. Поиск c удовлетворением ограничений. Cложность методов поиска 241.79 KB
  Методы не информированного поиска. Поиск с итеративным углублением, двунаправленный поиск. Поискc удовлетворением ограничений. Cложность методов поиска. Итеративно углубляющийся поиск. В ограниченном по глубине пои...
8127. Методы информированного поиска. Поиск сначала лучший. A*-поиск. 316.08 KB
  Методы информированного поиска. Поиск сначала лучший. A*-поиск. Методы не информированного (слепого) поиска в большинстве случаев неэффективны. Эффективность поиска может быть повышена за счет использования дополнительны...
8128. Альфа-бета отсечение 392 KB
  Альфа-бета отсечение (конспект) При минимаксном поиске количество состояний игры, которые должны быть исследованы в процессе поиска, экспоненциально зависит от количества ходов. Эту зависимость, к сожалению, невозможно устранить, но существует возмо...
8129. Архитектура доски объявлений (ДО) 238 KB
  Архитектура доски объявлений (ДО). (Конспект) Архитектура ДО. В первой половине 70-х годов по заказу Управления перспективных исследований США DARPA рядом американских университетов была выполнена пятилетняя исследовательская программа, направленная...
8130. Модели представления и обработки неопределенных знаний. Коэффициенты уверенности Шортлифа 71 KB
  Модели представления и обработки неопределенных знаний. Коэффициенты уверенности Шортлифа. (Конспект) Представление и обработка в ЭС неопределенных знаний Экспертным знаниям, как правило, присуща неопределенность. В инженерии знаний принято выделять...
8131. Нечеткие множества. Лингвистическая переменная. Нечеткая логика. Нечеткий вывод. Композиционное правило вывода 142.5 KB
  Нечеткие множества. Лингвистическая переменная. Нечеткая логика. Нечеткий вывод. Композиционное правило вывода. (Конспект) В основе понятия нечеткого множества (НИ) лежит представление о том, что обладающие общим свойством элементы некоторого множес...
8132. Байесовские сети 75.5 KB
  Байесовские сети (Конспект) Теорема Байеса: Пусть Ai - полная группа несовместных событий, тогда формула Байеса (формула перерасчета гипотез) и B некоторое событие положительной вероятности Доказательство следует из теоремы умножения и формулы...
8133. Модели планирования действий в системах искусственного интеллекта 94.5 KB
  Модели планирования действий в системах искусственного интеллекта Задача планирования. Язык описания состояний и действий. Планирование на основе поиска в пространстве состояний. Планированием называется процесс выработки последовательности действий...