Построение вероятностных изображений.
Рассмотрим пример построения листа папоротника. Заданное множество точек строится с помощью четырех преобразовании координат точек плоскости, каждое из которых применяется с определенной вероятностью. Преобразования задаются матрицей коэффициентов и вектором смещения вдоль оси 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.
Дата добавления: 2015-04-15; просмотров: 645;