Asked by Beulah A
on 21 Oct 2019

For example, there is line L1 between two points (x1,y1) and (x2,y2). Another line L2 between points (x1,y1) and (x3,y3). I want to find the angle between the lines L1, L2. How to find in MATLAB? I think in matlab there is no predefined function which performs the same.

Answer by Bjorn Gustavsson
on 21 Oct 2019

Accepted Answer

A more stable method that what Jos suggested is

v_1 = [x2,y2,0] - [x1,y1,0];

v_2 = [x3,y3,0] - [x1,y1,0];

Theta = atan2(norm(cross(v_1, v_2)), dot(v_1, v_2));

HTH

Answer by Jos (10584)
on 21 Oct 2019

Use the dot product between the two vectors (v1 and v2) given by the four x,y pairs points.

Given the formula: dot(v1,v2) = | v1 | x | v2 | x cos(A)

I leave it to you to find the angle A using the matlab functions norm, dot and acos.

More info: https://en.wikipedia.org/wiki/Dot_product

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 1 Comment

## James Tursa (view profile)

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/486528-how-to-find-angle-between-two-lines#comment_758691

Sign in to comment.