Thanks Bill I guess what I am really looking for is an angle of a line drawn from 0,0 to any point, given only the point coordinates. for instance in your example below if you use x = 20, y = -50 and * 180/pi you get -68 degrees. When what I need is 291.8 degrees. So below is my Angle to point function which calculates the angle to the point from 0,0 counterclockwise from the x plane. Basically I needed to replicate AutoCAD's angle to point function. So I phrased my earlier question quite poorly. Here is what I did with a brief example of how it's used.
Include "mapbasic.def" Declare Sub Main Declare Function AngleOfPt(ByVal dblY As Float, ByVal dblX As Float) As Float Sub Main Dim flY As Float Dim flX As Float Dim flAngle As Float flX = 20 flY = -50 flAngle = AngleOfPt(flY,flX) If flAngle <> 1004 Then Note flAngle Else Note "Both X and Y cannot be equal to Zero." End If End Sub Function AngleOfPt(ByVal dblY As Float, ByVal dblX As Float) As Float Dim PI As Float PI = 3.14159265358979 If dblX = 0 AND dblY < 0 Then AngleOfPt = 270 ElseIf dblX = 0 AND dblY > 0 Then AngleOfPt = 90 ElseIf dblX > 0 AND dblY >= 0 Then AngleOfPt = Atn(dblY / dblX) * 180 / PI ElseIf dblX < 0 AND dblY > 0 Then AngleOfPt = 180 - (Atn(dblY / Abs(dblX)) * 180 / PI) ElseIf dblX < 0 AND dblY <= 0 Then AngleOfPt = 180 + (Atn(dblY / dblX) * 180 / PI ) ElseIf dblX > 0 AND dblY < 0 Then AngleOfPt = 360 - (Atn(Abs(dblY) / dblX) * 180 / PI) ElseIf dblX = 0 AND dblY = 0 Then AngleOfPt = 1004 End If End Function -----Original Message----- From: B. Thoen [mailto:[EMAIL PROTECTED]] Sent: Thursday, January 23, 2003 6:22 AM To: Canfield, Andrew Cc: [EMAIL PROTECTED] Subject: Re: MI-L Command line compile instructions On Thu, 23 Jan 2003, Canfield, Andrew wrote: > Second question does anyone have a Mapbasic Atan2 function that they would > like to share? >From Ed Williams' "Aviation Formulary" page at http://williams.best.vwh.net/avform.htm#Math, Ata2(x,y) can be defined as: atan2(y,x)=atan(y/x) x>0 atan2(y,x)=atan(y/x)+pi x<0, y>=0 atan2(y,x)=pi/2 x=0, y>0 atan2(y,x)=atan(y/x)-pi x<0, y<0 atan2(y,x)=-pi/2 x=0, y<0 atan2(0,0) is undefined and should give an error. - Bill Thoen --------------------------------------------------------------------- List hosting provided by Directions Magazine | www.directionsmag.com | To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Message number: 5107