Frothy

frothy.jpg

Построить фрактал Frothy.

Frothy - алгебраический фрактал. Его
построение производится следующим образом:

используя циклы:
for (y=-my; y< mx; y++)
for (x=-mx; x< mx; x++),
присваивая элементам(x и y) структур (z и с) значения:
z.x=x*0.01;
z.y=y*0.01;
c.x=1;
c.y=1.02871;

и проходя по каждой точке экрана, с помощью формул:
z1=z;
z.x=(z1.x*z1.x) - (z1.y*z1.y) - c.x * (z1.x + z1.y);
z.y=2 * z1.x * z1.y - c.y * (z1.x - z1.y);
n++;
задаем цвет для каждой из этих точек.

void main() {
 
 
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
#include <conio.h>
 
int main () 
     {
     struct TComplex 
         {
         double x;
         double y;
         };
 
     int gdriver = DETECT, gmode, errorcode;
 
     /* initialize graphics mode */
     initgraph(&gdriver, &gmode, "C:\\BORLANDC\\BGI");
 
     /* read result of initialization */
     errorcode = graphresult();
 
     if (errorcode != grOk)  /* an error occurred */
        {
        printf("Graphics error: %s\n", grapherrormsg(errorcode));
        printf("Press any key to halt:");
        getch();
        exit(1);             /* return with error code */
     }
 
 
     int iter = 50;
     int max = 16;
 
     TComplex z,z1,c;
     int x,y,n ;
     int Cancel;
 
     int mx, my;
 
     Cancel=0;
     mx=getmaxx() / 2;
     my=getmaxy() / 2;
     for (y=-my; y<mx; y++)
       for (x=-mx; x< mx; x++){
	  n=0;
	  z.x=x*0.01;
	  z.y=y*0.01;
	  c.x=1;
	  c.y=1.02871;
	  while ( (((z.x*z.x) + (z.y*z.y)) < max) && (n < iter)) {
	     z1=z;
	     z.x=(z1.x*z1.x) - (z1.y*z1.y) - c.x * (z1.x + z1.y);
	     z.y=2 * z1.x * z1.y - c.y * (z1.x - z1.y);
	     n++;
	     if (kbhit())  Cancel=1;
	     }
	  if (n=iter) putpixel(mx + x, my + y, (((z.x*z.x) + (z.y*z.y))*10));
	  if (Cancel) return 0;
       }
    getch();
    closegraph();
    return 0;
}
 
}

Ключевые слова: 
Frothy фрактал
ВложениеРазмер
FROTHY.rar34.24 кб