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?
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?
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
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.