[Gambas-user] more trigonometry fun (not)

Bruce Bruen bbruen at ...2308...
Tue May 24 06:16:23 CEST 2011


On 24/05/11 13:14, Kevin Fishburne wrote:
> I was already helped graciously in figuring out how to translate a point
> in a plane along its local axes at a given orientation, but now need a
> bit of the inverse of the equation.
>
> I need to know the (x, y) offset of a point at a given orientation and
> velocity. For example if a point is moving at an angle of 45 degrees (or
> radians, take your pick), what would its x and y coordinate be
> increased/decreased by? The variables I can think of would be:
>
> x1 (point's current x coordinate)
> y1 (point's current y coordinate)
> a (point's angle/orientation in degrees/radians)
> v (point's velocity)
> x2 (x coordinate offset of point's new position)
> y2 (y coordinate offset of point's new position)
>
> The calculation would take x1, y1 a and v as inputs and produce x2 and
> y2 as offsets (x1 + x2, y1 + y2 = point's new position).
>
> There really should be a list of basic things like this for graphics
> programmers. I've searched for years and found practically nothing.
> Weird, considering this has probably been done thousands of times since
> the days of DOS. :/
>
> In case anyone's wondering why I need this, the equation will allow
> particles and projectiles to follow logical paths. Currently they're
> bound to local coordinates and ignore player orientation. Digging,
> shooting arrows, throwing objects, etc. can't work without it.
>
>    
1) Need to include i being the time increment in the same units as velocity
2) Basic physics says point will move d units in i time increments according
to distance=velocity * time . So point will have a deltaXY of v*i.
Basic trig converts this to deltaX and deltaY using the old "Sign On 
Here 'Coz Alf Has Tan OverAlls"
deltaX = deltaXY * sin(a)
deltaY=deltaXY *cos(a)

Bobs, yer uncle, return deltaX and deltaY!




More information about the User mailing list