Фрактал паук

spider.JPG

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

Для его построения используються следующие формулы:
z.X=(z1.X*z1.X)-(z1.Y*z1.Y)+c.X;
z.Y=2*z1.X*z1.Y+c.Y;
c.X=c1.X/2+z.X;
c.Y=c1.Y/2+z.Y;
пробегая по значениям циклов:
for (y = -my; y < my; y++)
for (x = -mx; x < mx; x++)
получаем изоображение

void main() {
 
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
#include <conio.h>
 
int main () {
 
struct complex{
double X;
double Y;
}   ;
 
 int iter=50;
 int max=16;
 
 complex z,z1,c,c1;
 int x,y,n;
 int cancel;
 
int gdriver = DETECT, gmode, errorcode;
 
/* initialize graphics mode */
initgraph(&gdriver, &gmode, "С:\\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 */
}
 
  cancel=0;
 
  for (y=-getmaxy() / 2; y<getmaxy()/2; y++)
     for (x=-getmaxx() / 2 ; x< getmaxx() / 2; x++) {
 
        n=0;
	z.X=x*0.01;
	z.Y=y*0.01;
	c.X=z.X;
	c.Y=z.Y;
	while (((z.X*z.X+z.Y*z.Y)<max)&&(n<iter)) {
           z1=z;
           c1=c;
	    z.X=(z1.X*z1.X)-(z1.Y*z1.Y)+c.X;
	    z.Y=2*z1.X*z1.Y+c.Y;
	    c.X=c1.X/2+z.X;
	    c.Y=c1.Y/2+z.Y;
           n++;
           if (kbhit()) cancel=1;
        }
        if (n<iter) 
           putpixel(getmaxx() / 2+x,getmaxy() / 2+y,n % 16);
	if (cancel) return 0;
     }
  getch()   ;
  closegraph();
return 0;
}
 
}

Ключевые слова: 
Фрактал паук
ВложениеРазмер
spider.rar34.88 кб