TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
 Specialized Dev Zones Research Center eBook Library .NET Java C++ Web Dev Architecture Database Security Open Source Enterprise Mobile Special Reports 10-Minute Solutions DevXtra Blogs Slideshow

 Home » Tip Bank » .NET » VB.NET » Math Processing
Language: VB
Nov 15, 2006

### WEBINAR:On-Demand

Building the Right Environment to Support AI, Machine Learning and Deep Learning

# 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 function
If (commonY = Y1 And commonX = X1) Or (commonY = Y2 And commonX = X2) Or
(Y1 = Y2 And X1 = X2) Then

Else
Dim differenceX1 As Double, differenceX2 As Double, differenceY1 As Double, differenceY2 As Double
'set the variables
differenceX1 = commonX - X1
differenceY1 = commonY - Y1
differenceX2 = commonX - X2
differenceY2 = commonY - Y2

'applying the angle between two lines vector rule, calculate the angle
getAngleBetweenLinesVect = invCos(((differenceX1 * differenceX2) + (differenceY1 * differenceY2)) / _
(Sqr(CDbl(differenceX1) ^ 2 + CDbl(differenceY1) ^ 2) * Sqr(CDbl(differenceX2) ^ 2 +
CDbl(differenceY2) ^ 2)))

End If

End Function

'the inverse cos function. Returns and angle.
Public Function invCos(X As Double) As Double

If X > 1 Or X < -1 Then
'if the ratio supplies is outside the acceptable range.
ElseIf X = 1 Then
invCos = 0
ElseIf X = -1 Then
invCos = Pi
Else
invCos = (Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1))
End If

End Function
``````
Richard Bunt

 Submit a Tip Browse ".NET" Tips Browse All Tips
Thanks for your registration, follow us on our social networks to keep up-to-date