Code : Tout sélectionner
;* Barnsley fern https://en.wikipedia.org/wiki/Barnsley_fern
#x=800:#y=800
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0 Or OpenWindow(0, 0, 0, #X+1, #Y+1, "Barnsley fern", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)=0 Or OpenWindowedScreen(WindowID(0),0,0,#X+1,#Y+1,0,0,0,#PB_Screen_NoSynchronization )=0
MessageRequester("Error", "Can't open the sprite system", 0)
End
EndIf
x.f=0.0:y.f=0.0:xn.f=0.0:yn.f=0.0
px.f=0.0:py.f=0.0
CreateSprite(0,#x+1,#y+1)
Repeat
FlipBuffers()
ExamineKeyboard()
StartDrawing(SpriteOutput(0))
For i=1 To 100
r.i=Random(100)
If r<2
xn=0
yn=0.16*y
ElseIf r<87
xn= 0.85*x + 0.04*y
yn= -0.04*x + 0.85*y + 1.6
ElseIf r<94
xn= 0.2* x + -0.26*y
yn= 0.23*x + 0.22*y + 1.6
Else
xn= -0.15*x + 0.28*y
yn= 0.26*x + 0.24*y + 0.44
EndIf
px=(xn+2.1820)*#x/4.8378
py=yn*#y/9.9983
py=Abs(py-#y)
;scale to the screen
Plot(Int(px),Int(py),#Green)
x=xn:y=yn
Next i
StopDrawing()
DisplaySprite(0,0,0)
While WindowEvent()
Wend
Until KeyboardPushed(#PB_Key_Escape)