Hello, friends.
Can anybody help to create macros which will be able to calculate angles between two coordinates?
Thanks for your help
Printable View
Hello, friends.
Can anybody help to create macros which will be able to calculate angles between two coordinates?
Thanks for your help
Should be simple arc tan function
Code: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
Hmmmm..... For those of us who have been sitting out in the sun for too long, just what does that do Paul?
then in D2:
=ATAN2(A4-A3,B4-B3)*180/PI()
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?
According to what is written in the helpfiles (F1) you are.
Same result as snb's
Code:=DEGREES(ATAN2(A4-A3,B4-B3))
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 radiansQuote:
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.
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
Trig was one of those subjects that I slept through at school