Calculate the Angle Between Two Lines

This code shows you how to calculate the angle between two lines using vectors and an inverse cosine function:

Public Function getAngleBetweenLinesVect(commonX As Single, commonY As Single, X1 As Single, Y1 As Single, Y2 As Single, X2 As Single) As Double'check if both the lines are the same, if they are exit the functionIf (commonY = Y1 And commonX = X1) Or (commonY = Y2 And commonX = X2) Or (Y1 = Y2 And X1 = X2) ThenElseDim differenceX1 As Double, differenceX2 As Double, differenceY1 As Double, differenceY2 As Double'set the variables differenceX1 = commonX - X1differenceY1 = commonY - Y1differenceX2 = commonX - X2differenceY2 = commonY - Y2'applying the angle between two lines vector rule, calculate the angle'in radiansgetAngleBetweenLinesVect = invCos(((differenceX1 * differenceX2) + (differenceY1 * differenceY2)) / _(Sqr(CDbl(differenceX1) ^ 2 + CDbl(differenceY1) ^ 2) * Sqr(CDbl(differenceX2) ^ 2 + CDbl(differenceY2) ^ 2)))End IfEnd Function'the inverse cos function. Returns and angle.Public Function invCos(X As Double) As DoubleIf X > 1 Or X < -1 Then'if the ratio supplies is outside the acceptable range.    ElseIf X = 1 Then    invCos = 0ElseIf X = -1 Then    invCos = PiElse    invCos = (Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1))End IfEnd Function
Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: