Построить фрактал Lace. Для построения фрактал Лейс используем параметр А - случайный коеффициент в диапазоне [0,1]. w:=Arctg(x-1, y); а если коэффициент А<=2/4,то по этим w:=Arctg(x+1/2, y-sqrt(3)/2); если коэффициент А<=3/4(других быть не может), то по этим w:= Arctg(x+1/2, y+sqrt(3)/2); Program Lace; Uses CRT, Graph; Var {Обьявление} gd, gm: Integer; x, y, a, x1, y1: Real; n: Integer; r0, w: Real; Function Arctg(x,y:Real):Real; {Function} Var w:Real; Begin w:=arctan(abs(y/x)); If (y>0)and(x<0) then w:=pi-w Else If (y<0)and(x<0) then w:=w+pi Else If (y<0)and(x>0) then w:=-w; Arctg:=w; {Return w} End; Begin gd:=Detect; InitGraph(gd, gm, ' '); {Инициализация графики} x:=0.1; y:=0.1; While not KeyPressed do Begin {Нажатие для выхода из проги} a:=Random; {Случайное значение а} r0:=sqrt(x*x+y*y); w:=Arctg(x-1, y); If a <= 1/4 then Begin w:=Arctg(x-1, y); Y1:=-r0*cos(w)/2+1; X1:=-r0*sin(w)/2; End Else If (a<=2/4) then Begin w:=Arctg(x+1/2, y-sqrt(3)/2); Y1:=-r0*cos(w)/2-1/2; X1:=-r0*sin(w)/2+sqrt(3)/2; End Else If (a<=3/4) then Begin w:= Arctg(x+1/2, y+sqrt(3)/2); Y1:=-r0*cos(w)/2-1/2; X1:=-r0*sin(w)/2-sqrt(3)/2; End Else Begin w:=Arctg(x, y); Y1:=-r0*cos(w)/2; X1:=-r0*sin(w)/2; End; {End while} x:=x1; y:=y1; PutPixel(Round(320+130*x), Round(200+130*y), 14); {Вырисовка } End; ReadKey; CloseGraph; End.
Ключевые слова:
Фрактал Lace
|
|||||||