All pastes #419140 Raw Edit

RUCCUS

public text v1 · immutable
·published 2007-04-01 02:29 UTC
rendered paste body
INPUT "How many rope segments? ",segments
INPUT "How long should each segment be? ",length

SYNC ON:SYNC RATE 0:BACKDROP ON:COLOR BACKDROP RGB(000,000,000):RANDOMIZE TIMER()

TYPE segT
   x1#,y1#,x2#,y2#
   length
   angle#
ENDTYPE
DIM segment(segments) AS segT
segment(0).x2# = SCREEN WIDTH()/2
segment(0).y2# = SCREEN HEIGHT()/2
FOR x = 1 TO segments
   segment(x).length = length
   segment(x).angle# = RND(30)
NEXT x
DO

   IF MOUSECLICK()
      segment(0).x1# = MOUSEX()
      segment(0).y1# = MOUSEY()
      segment(0).angle# = ATANFULL(segment(0).x2#-segment(0).x1#,segment(0).y2#-segment(0).y1#)
   ENDIF

   segment(0).angle# = CURVEANGLE(0,segment(0).angle#,500)
   FOR x = 1 TO segments
      segment(x).x1# = segment(x-1).x2#
      segment(x).y1# = segment(x-1).y2#
      segment(x).x2# = NEWXVALUE(segment(x).x1#,segment(x).angle#,segment(x).length)
      segment(x).y2# = NEWZVALUE(segment(x).y1#,segment(x).angle#,segment(x).length)
      LINE segment(x).x1#,segment(x).y1#,segment(x).x2#,segment(x).y2#
      segment(x).angle# = CURVEANGLE(segment(x-1).angle#,segment(x).angle#,100)
   NEXT x

   SYNC

LOOP