Этот алгоритм многим известен, и я взялся за его реализацию, кроме фрактала Серпинского добавил одну модификацию.
Алгоритм прост: имеется три точки с координатами и точка X0=127,Y0=127. Выбирается случайное число 0-2, и в зависимости от номера точка перемещается в нужном направлении.
Выглядит это примерно так:
RandomSeed(12345)
Dim x.a(3)
Dim y.a(3)
Dim c.l(3)
x(0)=127:y(0)=0
x(1)=0:y(1)=255
x(2)=255:y(2)=255
c(0)=RGB(255,0,0)
c(1)=RGB(0,255,0)
c(2)=RGB(0,0,255)
x0=127
y0=127
If InitSprite() And OpenWindow(0,0,0,640,480,"SineWave",#PB_Window_SystemMenu) And OpenWindowedScreen(WindowID(0),0,0,640,480,0,0,0)
Repeat
StartDrawing(ScreenOutput())
Repeat
p.l=Random(255)&3
Until p<>3
x0=(x0+x(p))/2
y0=(y0+y(p))/2
Box(x0,y0,1,1,c(p))
StopDrawing()
FlipBuffers()
Until WindowEvent()=#PB_Event_CloseWindow
EndIf
; IDE Options = PureBasic 5.30 (Windows - x86)
; CursorPosition = 3
pouet, я поторопился с релизом, Manwe добавил свою процедуру звука.
Комментарии
Отправить комментарий