|
|||||
Графика и обработка изображений. Фракталы.Множество Мандельброта.Даю исходник. Понять алгоритм не составит труда из статьи 'Введение во фракталы.' #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); } Вверх по странице, к оглавлению и навигации.
|