Занялся старым алгоритмом, но забыл, как код реализован. Несколько проб и получилась картинка:
Dim x(4)
Dim y(4)
If OpenWindow(0, 0, 0, 400, 400, "chaosgame", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0, 0, 0, 400, 400)
If StartDrawing(CanvasOutput(0))
Box (0,0,400,400,0)
DrawingMode(#PB_2DDrawing_Outlined )
For i=0 To 4
x(i)=180*Cos((54+i*72)*#PI/180)
y(i)=180*Sin((54+i*72)*#PI/180)
Circle(x(i)+200,y(i)+200,5,$FF00)
Next i
StopDrawing()
EndIf
x=200
y=200
RandomSeed(12345)
Repeat
Event = WindowEvent()
If StartDrawing(CanvasOutput(0))
i=Random(4,0)
x=(x+x(i))/2.5
y=(y+y(i))/2.5
Box(x+200,y+200,1,1,255)
StopDrawing()
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
Dim y(4)
If OpenWindow(0, 0, 0, 400, 400, "chaosgame", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0, 0, 0, 400, 400)
If StartDrawing(CanvasOutput(0))
Box (0,0,400,400,0)
DrawingMode(#PB_2DDrawing_Outlined )
For i=0 To 4
x(i)=180*Cos((54+i*72)*#PI/180)
y(i)=180*Sin((54+i*72)*#PI/180)
Circle(x(i)+200,y(i)+200,5,$FF00)
Next i
StopDrawing()
EndIf
x=200
y=200
RandomSeed(12345)
Repeat
Event = WindowEvent()
If StartDrawing(CanvasOutput(0))
i=Random(4,0)
x=(x+x(i))/2.5
y=(y+y(i))/2.5
Box(x+200,y+200,1,1,255)
StopDrawing()
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
Картинка может меняться, если изменить делитель 2.5 на 2 или 3

Комментарии
Отправить комментарий