40 lines
1.2 KiB
Plaintext
40 lines
1.2 KiB
Plaintext
#Window1 = 0
|
|
#Image1 = 0
|
|
#ImgGadget = 0
|
|
|
|
#NUM_PARTICLES = 3000
|
|
#width = 200
|
|
#height = 200
|
|
#xmax = #width -3
|
|
#ymax = #height -3
|
|
Define.i Event ,i ,x,y
|
|
|
|
If OpenWindow(#Window1, 0, 0, #width, #height, "Brownian Tree PureBasic Example", #PB_Window_SystemMenu )
|
|
If CreateImage(#Image1, #width, #height)
|
|
ImageGadget(#ImgGadget, 0, 0, #width, #height, ImageID(#Image1))
|
|
StartDrawing(ImageOutput(#Image1))
|
|
FrontColor($FFFFFF)
|
|
Plot( Random(#xmax) , Random(#ymax ))
|
|
StopDrawing()
|
|
SetGadgetState(#ImgGadget, ImageID(#Image1))
|
|
For i = 1 To #NUM_PARTICLES
|
|
x = Random(#xmax)+1 : y = Random (#ymax)+1
|
|
StartDrawing(ImageOutput(#Image1))
|
|
While Point(x+1, y+1) + Point(x, y+1)+Point(x+1, y)+Point(x-1, y-1)+Point(x-1, y)+Point(x, y-1) = 0
|
|
x = x + (Random(2)-1) : y = y + (Random(2)-1)
|
|
If x < 1 Or x > #xmax Or y < 1 Or y > #ymax
|
|
x = Random(#xmax)+1 : y = Random (#ymax)+1
|
|
EndIf
|
|
Wend
|
|
Plot(x,y)
|
|
StopDrawing()
|
|
SetGadgetState(#ImgGadget, ImageID(#Image1))
|
|
Next
|
|
|
|
EndIf
|
|
|
|
Repeat
|
|
Event = WaitWindowEvent()
|
|
Until Event = #PB_Event_CloseWindow
|
|
EndIf
|