Построение вероятностных изображений

Рассмотрим пример построения листа папоротника. Заданное множество точек строится с помощью четырех преобразовании координат точек плоскости, каждое из которых применяется с определенной вероятностью. Преобразования задаются матрицей коэффициентов и вектором смещения вдоль оси y:

, вероятность рÎ(0,85;0,92];

, вероятность рÎ[0;0,85];

, вероятность рÎ(0,99;1];

, вероятность рÎ(0,92;0,99].

Program Paporotnik;

Uses Graph,Crt;

Const

iteration=500000;

Var

t,x,y,p:Real;

k:LongInt;

Driver,Mode,mid_x,mid_y,r:Integer;

Begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

mid_x:=GetMaxX div 2;

mid_y:=GetMaxY;

r:=Trunc(0.1*mid_y);

Randomize;

x:=1.0;

y:=0.0;

For k:=1 to iteration do

Begin

p:=Random;

t:=x;

If p<=0.85 then

Begin

x:=0.85*x+0.04*y;

y:=-0.04*t+0.85*y+1.6;

End

Else

If p<=0.92 then

Begin

x:=0.2*x-0.26*y;

y:=0.23*t+0.22*y+1.6;

End

Else

If p<=0.99 then

Begin

x:=-0.15*x+0.28*y;

y:=0.26*t+0.24*y+0.44;

End

Else

Begin

x:=0.0;

y:=0.16*y;

end;

PutPixel(mid_x+Round(r*x),

mid_y-Round(r*y),LightGreen);

end;

ReadLn;

CloseGraph;

End.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: