Subject: Re: [stella] Angular movement From: Christopher Tumber <christophertumber@xxxxxxxxxx> Date: Wed, 14 Jan 2004 17:31:57 -0500 |
>Is there a mathematical formula I can use to precisely calculate the numbers because something as simple as "45' angle up means .5/.5" isn't working. I could manually tweak the numbers and eyeball it but I'm sure there has to be a formula. Because you're using the wrong formula (and an incomplete one too). This is all Pythagorean theorem: A^2=B^2+C^2 Y_____ |_| / | / B| / A (Speed) | / |/ Angle To find for Y, your values are: The angle - 30°, 45°, whatever A - the speed vector (the Hypotenuse) B - Y (Adjacent side) C - Opposite side Given the angle and the length of vector A, you can solve for any of the others: cosine(angle)=Adjacent/Hypotenuse Adjacent=cosine(angle)Hyposneuse Y=cos(angle)Speed Similarily, for X: X=sin(angle)Speed For 45°, it's actually about 0.707/0.707" not .5/.5" And that's only part way there - you still have to account for aspect ratio (4:3) and you should normalise it into byte form (preferably 2 bytes but YMMV). Adjusting for aspect ratio: Y=cos(angle)Speed*4 X=sin(angle)Speed*3 As 2 bytes values: Y=cos(angle)Speed*256 X=sin(angle)Speed*192 And then make a table of that for however many angles you want. Chris... ---------------------------------------------------------------------------------------------- Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[stella] Angular movement, Glenn Saunders | Thread | Re: [stella] Angular movement, Eric Ball |
[stella] Seawolf: Day Ten, Manuel Rotschkar | Date | Re: [stella] Angular movement, Eric Ball |
Month |