Новости
Программы
Turbo Pascal
Игры
Документация
Странности
FAQ
Ссылки
Форум
Живой Журнал
Гостевая
книга
Рассылка
Благодарности
Об авторе
| |
Алгоpитм постpоения множества мандельбpота
A. (Sergey Potapenko 2:463/308.9)
----------------------------------------------------------------------------
Вот деpжи. Пpогpаммка маленькая и я дyмаю достаточно понятная. Пpавда pемки
я неставил. Когдато я честно содpал её из какого-то жypнала.
=== Hачало fractal.c ===
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <dos.h>
#include <conio.h>
#define COLOR 100
#define MAS 0.9
typedef struct complex Complex;
void Sqr(Complex *z)
{
Complex Fool=*z;
z->x=Fool.x*Fool.x-Fool.y*Fool.y;
z->y=2*Fool.x*Fool.y;
}
char GetColor(Complex zInit)
{
Complex z=zInit;
int Color=COLOR;
while(z.x*z.x+z.y*z.y <= 4 && Color)
{
Sqr(&z);
z.x+=zInit.x;
z.y+=zInit.y;
Color--;
}
return Color;
}
void DrawMandelSet(double xMin,double xMax,double yMin,double yMax)
{
double xInc,yInc;
Complex zInit;
int y,x;
char far *Screen=(char far *)MK_FP(0xa000,0);
zInit.y=yMin;
xInc=(xMax-xMin)/320;
yInc=(yMax-yMin)/200;
for(y=0;y<200;y++,zInit.y+=yInc)
{
zInit.x=xMin;
for(x=0;x<320;x++,zInit.x+=xInc,Screen++)
*Screen=GetColor(zInit);
}
}
void main(void)
{
_AX=0x13;geninterrupt(0x10);
DrawMandelSet(-2*MAS,1*MAS,-1*MAS,1*MAS);
getch();
_AX=0x03;geninterrupt(0x10);
}
Назад
|