Hi Cara, One thing I've found is that you can get the same result by swapping the arguments to atan2. Using your variable names,
angle=atan2(vectorX,vectorY)*180/M_PI; if (angle<0) angle+=360; Take care, Rynhardt * Cara Quinn <[email protected]> [110119 23:47]: > Thomas et al; > > It occurred to me, that during our last discussion of 3D mapping etc, that > you'd asked how I was converting my arc tangent result to a bearing with zero > being north and degrees ascending clockwise. Here's how I do it. this is my > own way, and is only for a flat plane which is perfect for games. There are > other formulae out there, but they take into account earth curvature. This is > not as elegant as I'd like, but is less expensive than other formulae. > -Perhaps someone else knows of a better formula?? -Would love to hear!? :) > > Anyway, this way is very simple. Hope it helps! :) > > Smiles, > > Cara :) > > // x1, y1 is the user's origin and x2, y2 is the point you're trying to get > the angle to. > > // subtract the remote point from your origin > // it's important to do this in this order or the result will be opposite > what you want > // I.E. 270 degrees instead of 90 etc > > double vectorX = x2 - x1; > double vectorY = y2 - y1; > > // get the angle in degrees between the two points > > double angle = (atan2(vectorY, vectorX) * 180 / 3.1415926535); > > // get the value in the proper negative range > > angle-= 450; > > // switch to positive so that degrees will ascend clockwise as with a > proper heading > > angle = angle * -1; > > // round off result so modulus will be accurate > > angle = round(angle); > > // use modulus of 360 to get result in the proper range > > angle = (int)angle % 360; > > // return the result; > > return angle; > --- > Gamers mailing list __ [email protected] > If you want to leave the list, send E-mail to [email protected]. > You can make changes or update your subscription via the web, at > http://audyssey.org/mailman/listinfo/gamers_audyssey.org. > All messages are archived and can be searched and read at > http://www.mail-archive.com/[email protected]. > If you have any questions or concerns regarding the management of the list, > please send E-mail to [email protected]. --- Gamers mailing list __ [email protected] If you want to leave the list, send E-mail to [email protected]. You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/[email protected]. If you have any questions or concerns regarding the management of the list, please send E-mail to [email protected].
