delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/10/06/22:30:39

From: no DOT spam DOT please AT thanks DOT com
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Tank Movement
Date: 7 Oct 1998 01:48:15 GMT
Organization: Texas Instruments
Lines: 29
Message-ID: <6veh8v$4cq$2@superb.csc.ti.com>
References: <36147a32 DOT 10039817 AT ct-news DOT iafrica DOT com>
<6vebp7$sap$1 AT fir DOT prod DOT itd DOT earthlink DOT net>
<6vegc7$4cq$1 AT superb DOT csc DOT ti DOT com>
NNTP-Posting-Host: lenny.dseg.ti.com
Mime-Version: 1.0
X-Trace: superb.csc.ti.com 907724895 4506 172.25.38.136 (7 Oct 1998 01:48:15 GMT)
X-Complaints-To: abuse AT ti DOT com
NNTP-Posting-Date: 7 Oct 1998 01:48:15 GMT
X-Newsreader: knews 0.9.8
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

In article <6vegc7$4cq$1 AT superb DOT csc DOT ti DOT com>,
	no DOT spam DOT please AT thanks DOT com writes:
> A much easier approach - use atan2(), which takes care of the quadrant
> mapping for you, e.g.,
> 
> double dir_degrees(int x1, int y1, int y2, int x2)
> {
>  int v1, v2;
>  double dir;
>  v1 = y1 - y2;
>  v2 = x1 - x2;
>  dir = 57 * atan( v1, v2 );
                  ^
Oops, I forgot the 2!  Sorry.  Try

#define RAD2DEG 180.0/PI

  ....

  dir = RAD2DEG * atan2( v1, v2 );

Also, since atan2 (and atan) return a double, you might as well retain
the precision in the rad-to-deg conversion.  It doesn't cost you
anything.

>  return dir;
> }

Oops, I forgot the 2!

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019