# Caculate the angle between two intersecting lines

Code Example of how would I calculate the angle of two intersecting lines.
Example:
If I have a V shaped object and one line is .75 and the other line is .50 what is the angle between the two lines.

LVL 2
###### Who is Participating?

Commented:
I don't have VB6... I wrote this in VBA... which should be pretty close.

NOTE: From what I researched about VB6 neither the ASIN function nor a PI funciton exist, so you have to supply your own.

``````Public Const Pi As Double = 3.14159265358979
Sub test()

Dim side As Long
Dim base As Long
Dim hyp As Long
Dim opp As Long
Dim angle As Double

side = 75
base = 50

hyp = side
opp = base / 2

' multiplying by 2 because we were solving for half the original triangle.
' multiplying by 180 / PI to convert radians to to degrees

angle = arcSin(opp / hyp) * 180 / Pi * 2

End Sub

' arc sine
' error if value is outside the range [-1,1]

Function arcSin(value As Double) As Double
If Abs(value) <> 1 Then
arcSin = Atn(value / Sqr(1 - value * value))
Else
arcSin = 1.5707963267949 * Sgn(value)
End If

End Function
``````
0

Commented:
What do you mean one line is .75 and the other is .50

Are you talking about the slope of the line?
0

Author Commented:
If the two lines of the V is 75 and the distance between the two non joined lines if 50 what is the angle?
0

Commented:
I assume you mean that the length of the two legs of the V are 75, and the distance between the ends of the V (where the legs are not touching) is 50.

You simply need trigonometry.

What you have is the legs of the V form a hypotenuse, and distance between the open ends of the V is a double set of "Opposites".
(See http://www.mathsisfun.com/sine-cosine-tangent.html or simply google sin, cos, tan or trigonometric functions).

In this case, sin = opposite / hypotenuse.  Your 'opposite' would be 1/2 of the 50, and your hypotenuse would be the legs of the V.

From there, you just need to use the trigonometric functions in the math library of what ever computer language you might be using.  Specifically you need the inverse sin function (many call that asin).

Angle = asin( 75 / 25 )  '25 being 1/2 of 50

The library is likely to give you the answer in radians (where 3.14 radians = 180 degrees).
0

Commented:
Follow-up

VB6 doesn't have a built-in Arc-sine function.  It only has:
sine ( sin() )
cosine ( cos() )
tangent ( tan() )
ArcTangent ( Atn() )

But you can use math to calculate an ArcSine():
Arcsin(X) = Atn(X / Sqr(-X * X+1))

Again, that formula is going to give you an answer in radians.  If you need it in degrees, multiply by 180 and divide by 3.14159265359
0

You need to give one more fact, you need 3 facts to calculate an angle (of a triangle) - you're only giving 2 (.5 and .75) - can you post a picture? :)
0

Commented:
@gerwin in the authors clarification all three sides were given.

2 of the sides are 75. (The V)
1 of the sides is 50. (The base)
0

@Ken - missed that :(
0

RetiredCommented:
PhilChapmanJr,

Your description of the situation is inadequate, so that the experts are having to guess what you mean.

Assuming that you are talking about two lines in the same plane, the best way to describe the lines is by their start and end points. This would which require four pairs of x and y co-ordinates, one pair for each end of each line.

Otherwise figures could simply refer to the gradients of each line. If so, the intersecting angle will be simply be the difference between the two angles.
0

Author Commented: