Re: The Euphoria Sub Commander project
- Posted by Pete Lomax <petelomax at blueyon?er?co.uk> Nov 16, 2007
- 549 views
don cole wrote: > > > Could someone please explain the following code to me in detail? I'm > especially > confused by the > {} brackets. > > }}} <eucode> > > k=player --1 or 2 > cen={{120,360},{520,360}}, -- centers of clock Two clocks, center of 1 is {120,360} and the centre of 2 is {520,360} > r=100, -- radius of clock > rt=remaining time in secs > > > Don Cole > > function p2xy(atom r, atom a) -- polar to xy > return {-r*sin(a),-r*cos(a)} > end function > > draw_line(colors[k],{cen[k],cen[k]+p2xy(r,rt/1800*PI)}) Draws a line from the centre of the clock to somewhere on the edge. As sin/cos expect arguments in radians, 0..2*PI, and rt is 0..3600, the number of seconds in an hour, it is coded as /1800*PI rather than /3600*2*PI. Now imagine a clock with the second hand pointing at 10 seconds past the hour, drop a line to the horizontal through the centre to make a right angled triange whose longest side is the second hand. For a picture, see eg http://www.mathsrevision.net/gcse/pages.php?page=39 From basic trig, the height of this triangle is r*sin(a) and the width is r*cos(a). (I almost always get such the wrong way round on first attempt.) Lastly, rt is the remaining time, a hand pointing at 2 o'clock would be (10/12)*3600 or 3000 seconds which should explain why the offsets from the clock centre to the tip of the arm are both returned as -ve. Hope that is enough detail for you there, Pete