Градиентная спираль

 


Давненько маялся с кодом, найденный код Turbo Pascal меня не устраивал. Вчера раскопал код вычисления таблицы для zx и попробовал переписать под 320х200:

If InitSprite() And OpenWindow(0,0,0,640,400,"Spirale",#PB_Window_SystemMenu) And OpenWindowedScreen(WindowID(0),0,0,640,400,0,0,0) 
    
    StartDrawing(ScreenOutput()) 
    
    amp=32*4
For y=0 To 199
  For x=0 To 319
    
    xx=x-160
    yy=y-100
    an=Int( 40*ATan2( xx,yy )  )
    
    ra.a=(xx*xx+yy*yy)>>8
    co.a=an+ra
    co=Int(amp+(amp-1)*Sin(co*#PI/128))
    
    ;Box (x*2,y*2,2,2,RGB(co*4,0,0))
    Box (x*2,y*2,2,2,RGB(co,0,0))
  Next x
Next y
        StopDrawing() 
        FlipBuffers() 
  Repeat
  Until WindowEvent()=#PB_Event_CloseWindow 
EndIf


Комментарии