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.

 


 

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

22552. Косой изгиб призматического стержня 58 KB
  Например дифференциальное уравнение изгиба стержня является нелинейным и вытекающая из него зависимость прогиба f от нагрузки Р для консольной балки изображенной на рис. 1 а также является нелинейной рис. Однако если прогибы балки невелики f l настолько что dv dz2 1 так как dv dz f l то дифференциальное уравнение изгиба становится линейным как видно из рис. а расчетная схема б линейное и нелинейное сопротивленияРис.
22553. Совместное действие изгиба и растяжения или сжатия 134.5 KB
  Предположим что прогибами балки по сравнению с размерами поперечного сечения можно пренебречь; тогда с достаточной для практики степенью точности можно считать что и после деформации силы Р будут вызывать лишь осевое сжатие балки. Применяя способ сложения действия сил мы можем найти нормальное напряжение в любой точке каждого поперечного сечения балки как алгебраическую сумму напряжений вызванных силами Р и нагрузкой q. Сжимающие напряжения от сил Р равномерно распределены по площади F поперечного сечения и одинаковы для всех...
22554. Ядро сечения при внецентренном сжатии 75.5 KB
  Ядро сечения при внецентренном сжатии При конструировании стержней из материалов плохо сопротивляющихся растяжению бетон весьма желательно добиться того чтобы все сечение работало лишь на сжатие. Этого можно достигнуть не давая точке приложения силы Р слишком далеко отходить от центра тяжести сечения ограничивая величину эксцентриситета. Конструктору желательно заранее знать какой эксцентриситет при выбранном типе сечения можно допустить не рискуя вызвать в сечениях стержня напряжений разных знаков. Здесь вводится понятие о так...
22555. Совместные действия изгиба и кручения призматического стержня 55 KB
  Совместные действия изгиба и кручения призматического стержня Исследуем этот вид деформации стержня на примере расчета вала кругового кольцевого поперечного сечения на совместное действие изгиба и кручения рис. Строим эпюры изгибающих моментов My и My. У кругового и кольцевого поперечного сечений все центральные оси главные поэтому косого изгиба у вала вообще не может быть следовательно нет смысла в каждом сечении иметь два изгибающих момента Mx и My а целесообразно их заменить результирующим суммарным изгибающим моментом рис....
22556. Расчет балок переменного сечения 76.5 KB
  Так как изгибающие моменты обычно меняются по длине балки то подбирая ее сечение по наибольшему изгибающему моменту мы получаем излишний запас материала во всех сечениях балки кроме того которому соответствует . Для экономии материала а также для увеличения в нужных случаях гибкости балок применяют балки равного сопротивления. Под этим названием подразумевают балки у которых во всех сечениях наибольшее нормальное напряжение одинаково и должно быть равно допускаемому. Условие определяющее форму такой балки имеет вид и Здесь Мх и...
22557. Расчет балки на упругом основании 78.5 KB
  Расчет балки на упругом основании.1 на упругое основание оказывающее в каждой точке на балку реакцию пропорциональную у прогибу балки в этой точке. Расчетная схема балки на упругом основании. Будем считать что основание оказывает реакцию при прогибах балки как вниз так и вверх.
22558. Энергетические методы расчета деформаций 75.5 KB
  Он основан на применении закона сохранения энергии. При статическом растяжении или сжатии упругого стержня происходит превращение потенциальной энергии из одного вида в другой; часть потенциальной энергии действующего на стержень груза полностью переходит в потенциальную энергию деформации стержня. Это явление имеет место при любом виде деформации всякой упругой конструкции при статической нагрузке; такую конструкцию можно рассматривать как своеобразную машину преобразующую один вид потенциальной энергии в другой. При этих условиях...
22559. Теорема Кастильяно 133 KB
  Будем решать эту задачу в несколько приемов; сначала рассмотрим более простой случай Рис. Мы представим себе что для перехода к смежному деформированному состоянию к силе сделана бесконечно малая добавка Рис. Предположим что мы сначала нагрузили нашу балку грузом ; балка очень немного прогнется Рис. Рис.
22560. Теоремы о взаимности работ и Максвелла — Мора 150 KB
  Если к балке нагруженной силой приложить затем статически силу в сечении 2 то к прогибу точки приложения силы от этой же силы прибавится Рис.1 прогиб от силы равный ; первый значок у буквы у указывает точку для которой вычисляется прогиб; второй обозначает силу вызывающую этот прогиб. Расчетная схема к теореме о взаимности работ Полная работа внешних сил составится из трех частей: работы силы на вызванном ею прогибе т. работы силы на вызванном ею прогибе ее точки приложения т.