Ковер Серпинского (Фрактальный)

kover.jpg

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

Термин: Фрактал (лат. fractus — дробленый) — термин, означающий геометрическую фигуру, обладающую свойством самоподобия, то есть составленную из нескольких частей, каждая из которых подобна всей фигуре целиком. В более широком смысле под фракталами понимают множества точек в евклидовом пространстве, имеющие дробную метрическую размерность (в смысле Минковского или Хаусдорфа), либо метрическую размерность, строго большую топологической.

Материал взят из Википедии — свободной энциклопедии:
http://ru.wikipedia.org/wiki/%D0%A4%D1%80%D0%B0%D0%BA%D1%82%D0%B0%D0%BB

Алгоритм(рекурсивный):
1.Рисуется квадрат стороны которого равны единице.
2.После этого каждая сторона квадрата делиться на 3 части.
3.Затем из квадрата разделенного на 9 квадратов удаляется центральный квадрат.
4.Пункты 1-3 применяются к 8 оставшимся квадратам.

#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
 
     /*прототип функции*/
     void kov(double A,double B,double C,double D,double n);
 
 
   int main(){
      /*инициализация грфики*/
      int gdriver=DETECT,gmode;
      initgraph(&gdriver,&gmode,"");
 
      /*применение цвета к rectangle*/
      setcolor(10);
      /*функиция рисует прямоугольник*/
      rectangle(90, 10, 550, 470);
      /*вызов функции kov*/
      kov(90, 10, 550, 470, 4);
 
  getch();
  return 0;
}
     /*рекурсивная */
     void kov(double A,double B,double C,double D,double n)
       {
 
	 double A1, B1, C1, D1;
	   if(n > 0){
	      A1 = 2 * A / 3 + C / 3;
	      C1 = A / 3 + 2 * C / 3;
	      B1 = 2 * B / 3 + D / 3;
	      D1 = B / 3 + 2 * D / 3;
 
	      rectangle (A1, B1, C1, D1);
              /*kov вызываеться рекурсивно*/
	      kov(A, B, A1, B1, n-1);
	      kov(A1, B, C1, B1, n-1);
	      kov(C1, B, C, B1, n-1);
	      kov(A, B1, A1, D1, n-1);
	      kov(C1, B1, C, D1, n-1);
	      kov(A, D1, A1, D, n-1);
	      kov(A1, D1, C1, D, n-1);
	      kov(C1, D1, C, D, n-1);
	   }
	 }

Ключевые слова: 
Ковер Серпинского (Фрактальный). Фрактал. Фрактальная графика
ВложениеРазмер
Исходные коды и исполняемый файл34.56 кб