Фрактальная графика. Используя фрактал, построить лист папоротника. Лист папоротника - достаточно простой и наглядный пример построения фрактала с помощью вероятностных распределений. С их помощью можно строить достаточно красивые и сложные фигуры. Остальные точки образуют стебель папоротника. /*Efanov N. 2009 ICQ #358603806 */ #include <graphics.h> #include <iostream.h> #include <stdlib.h> #include <math.h> #include <conio.h> #define MAXIT 20 double x,y,newx,newy,t,p; int main() { int i=0,randnum; randomize(); int gdriver=DETECT,gmode,errorcode; initgraph(&gdriver,&gmode,"C:\\borlandc\\bgi"); double k; int mid_x,mid_y,radius; mid_x=640/2; mid_y=480/2; radius=(int)(0.1*mid_y); x=1.0;y=1.0; for (i=0;i<19000;i++) { p=random(RAND_MAX)/(double)(RAND_MAX); t=x; if (p<=0.85) { //vysota x=0.84*x+0.04*y; y=0.04*t+0.85*y+1.6; } else if (p<0.93) { //simm sleva x=0.20*x-0.26*y; y=0.26*t+0.212*y+0.44; } else if (p<0.99) { //simmetr sprava x=-0.15*x+0.28*y; y=0.26*t+0.24*y+0.44; } else { //stvol x=0.0; y=0.16*y; } putpixel(320+floor(61*x)+1,470-(floor(40*y)+1),170); } while(!kbhit()); closegraph(); return 0; }
Ключевые слова:
Фрактал, вероятность, координаты, графика, папоротник, IFS-метод, iterated function system
|
|||||||