Построить фрактал IFS-Дендрит Данный фрактал строится благодаря случайному включению одной из двух пар уравнений для каждой итерации: x= a * x - b * y; или x= c * x - d * y + 1 - c; где iter - число итераций, a - наклон, b - коэффициен размера "листьев", c - "рзброс" точек, d - искажение фрактала, in - "рассеянность", t= x. #include <stdio.h> #include <stdlib.h> #include <graphics.h> #include <math.h> #include <conio.h> #define iter 100000 // число итераций #define a 0.00 // наклон #define b 0.70 // коэффициен размера "листьев" #define c 0.70 // "рзброс" точек #define d 0.00 // искажение фрактала #define in 5 // "рассеянность" void main() { float t, x, y, p; long int k; int mx, my, rad; int gd=DETECT, gm; initgraph(&gd, &gm, "j:\\bc31\\bgi"); randomize(); mx= 220; // сдвиг по оси ОХ my= 300; // сдвиг по оси ОY rad= 400; // размер x= 0.0; // стартовые состояния y= 0.0; // for(k=1; k<=iter; k++) { p= random(in); t= x; if(p<=1/2) { x= a * x - b * y; y= b * t + a * y; } else { x= c * x - d * y + 1 - c; y= d * t + c * y - d; } putpixel(mx + int(rad * x), my - int(rad * y), 2); } getch(); closegraph; }
Ключевые слова:
фрактал IFS-Дендрит
|
|||||||