PDA

View Full Version : Angle between two coordinates



messiah7
08-21-2015, 12:03 AM
Hello, friends.
Can anybody help to create macros which will be able to calculate angles between two coordinates?
Thanks for your help

Paul_Hossler
08-21-2015, 09:29 AM
Should be simple arc tan function




Option Explicit
Function AngleBetween(x1 As Double, y1 As Double, x2 As Double, y2 As Double) As Double
Dim x As Double
With Application.WorksheetFunction
'radians
x = .Atan2((y2 - y1), (x2 - x1))
x = x * 180# / .Pi
End With
AngleBetween = x
End Function

Aussiebear
08-22-2015, 12:56 AM
Hmmmm..... For those of us who have been sitting out in the sun for too long, just what does that do Paul?

snb
08-22-2015, 07:03 AM
then in D2:

=ATAN2(A4-A3,B4-B3)*180/PI()

Aussiebear
08-22-2015, 02:54 PM
From looking at the ATan2 function, I understand that this finds the angle in radians, and I assume that "*180/Pi" converts this to degrees. Am I correct?

snb
08-23-2015, 04:16 AM
According to what is written in the helpfiles (F1) you are.

jolivanes
08-23-2015, 09:18 AM
Same result as snb's



=DEGREES(ATAN2(A4-A3,B4-B3))

Paul_Hossler
08-23-2015, 03:43 PM
Hmmmm..... For those of us who have been sitting out in the sun for too long, just what does that do Paul?




From online help

ATAN2 function
Returns the arctangent, or inverse tangent, of the specified x- and y-coordinates.
The arctangent is the angle from the x-axis to a line containing the origin (0, 0) and a point with coordinates (x_num, y_num). The angle is given in radians between -pi and pi, excluding -pi.
Syntax
ATAN2(x_num,y_num)
X_num is the x-coordinate of the point.
Y_num is the y-coordinate of the point.
Remarks
A positive result represents a counterclockwise angle from the x-axis; a negative result represents a clockwise angle.
ATAN2(a,b) equals ATAN(b/a), except that a can equal 0 in ATAN2.
If both x_num and y_num are 0, ATAN2 returns the #DIV/0! error value.
To express the arctangent in degrees, multiply the result by 180/PI( ) or use the DEGREES function.


Translates P1 to the origin (0,0) and then uses the arctan of the Opposite (y2-y1) and the Adjacent (x2-x1) sides to determine the angle in radians

The 180/Pi is to get to degrees

Many ways to do it, but I try to match an answer to the perceived complexity of the question and this was a very basic trig question

Aussiebear
08-24-2015, 02:33 AM
Trig was one of those subjects that I slept through at school