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.

 


 

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

54629. Охтирщина – мій рідний край 436.5 KB
  Вчити учнів з повагою ставитися до рідної землі українського народу його традицій та звичаїв; розширювати знання учнів про рідне місто як культурний осередок української держави поглибити зміст поняття Батьківщина; розвивати усне мовлення та логічне мислення школярів; виховувати почуття відповідальності за збереження і продовження традицій та звичаїв рідного краю. Ви дізнаєтеся більше про місто в якому ви народилися і живете його символи про життя видатних людей. Серед них є і наше маленьке місто Охтирка. Які...
54630. ДОДАВАННЯ ТА ВІДНІМАННЯ НАТУРАЛЬНИХ ЧИСЕЛ 81.5 KB
  Наступний пункт регати – бухта Геометрична. Уважно подивіться на нашу карту. Чий це прапор? Це ж пирати! Допоможемо врятувати від них мешканців бухти. Для цього необхідно виконати пиратські вимоги: розв’язати геометричні завдання. Командам необхідно назвати зображені фігури і показати, скільки їх всього зображено.
54631. Узагальнення теоретичних знаньз теми «Океани» 156 KB
  Мета: узагальнити, систематизувати та визначити рівень знань, вмінь, навичок учнів з даної теми; виховувати зацікавленість до уроків географії, уміння працювати в колективі.
54632. МАНДРІВКА ОКЕАНОМ КОМП’ЮТЕРНИХ ЗНАНЬ 40.5 KB
  Мета: повторити матеріал вивчений у першому семестрі коригувати знання учнів розвивати пізнавальну активність сприяти розвитку уваги виховувати інтерес до інформатики. Сьогодні я вас запрошую у подорож але не просту а казкову подорож океаном компютерних знань на чудовому кораблі. Що таке інформація Що вивчає наука інформатика Для чого призначений компютер Для чого призначена клавіатура компютера Для чого призначена клавіша...
54633. Мандрівка океанами 45.5 KB
  Вступне слово вчителя 3 хвилини Ви вже звикли до вигляду нашої планети де материки й океа ни розташовані в певному порядку На карті ви бачите дві Америки Північну і Південну що простягли одна одній руки і перегородили Світовий океан; Африку плічопліч із Євра зією самотній пятикутник Австралії відокремлену білу Антарктидуоточену океанічним кільцем. 250 млн років тому на нашій планеті існував один гігантський материк Пангея що омивався єдиним океаном. Між ними...
54634. Урок – гра «Географічний чемпіонат» 75 KB
  Мета: узагальнити і перевірити знання з теми “Океани”, повторити географічну номенклатуру; розвивати допитливість, увагу, спостережливість, кмітливість, образне мислення учнів; прищеплювати любов до природи, виховувати екологічну свідомість.
54635. Окупаційний режим і розгортання руху Опору в Україні 124.5 KB
  Мета. Визначити суть окупаційного режиму в Україні, наслідки, до яких привела політика «нового порядку». Показати трагедію українського народу в ході війни, проаналізувати розгортання руху Опору в Україні. Виховувати почуття патріотизму, поваги та шани до ветеранів та учасників Великої Вітчизняної війни, почуття неприязні до поневолення, рабства, ідей фашизму та нацизму.
54636. Історія в літературі рідного краю. (Зустріч із письменницею Ольгою Хало) 70 KB
  Мета: через призму ліри О.Хало познайомити учнів з історією рідного краю; виховувати почуття патріотизму, поваги до історичної минувшини лубенської землі. Обладнання: виставка творів О.Хало, ілюстрації до її творів, проектор, магнітофон.
54637. Олимпийские игры 41.5 KB
  Если у названного животного длинный хвост игроки поднимают правую руку и машут ею если же хвоста нет или он короткий игроки хлопают. Лошадь длинный коза короткий корова длинный лиса длинный заяц короткий овца короткий тигр длинный медведь короткий свинья короткий осёл длинный белка длинный.