How to find angle between two lines?

305 ビュー (過去 30 日間)
Beulah A
Beulah A 2019 年 10 月 21 日
コメント済み: Beulah A 2019 年 11 月 6 日
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.

採用された回答

Bjorn Gustavsson
Bjorn Gustavsson 2019 年 10 月 21 日
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
  1 件のコメント
Beulah A
Beulah A 2019 年 11 月 6 日
Thanks, This solves my problem.

サインインしてコメントする。

その他の回答 (2 件)

Jos (10584)
Jos (10584) 2019 年 10 月 21 日
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.

Bjorn Gustavsson
Bjorn Gustavsson 2019 年 10 月 21 日

カテゴリ

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by