小编osa*_*mon的帖子

两条线之间的内角

我有两行:Line1和Line2.每一行是通过两个点来定义(P1L1(x1, y1), P2L1(x2, y2)P1L1(x1, y1), P2L3(x2, y3)).我想知道这两行定义的内角.

为此,我用横坐标计算每条线的角度:

double theta1 = atan(m1) * (180.0 / PI);
double theta2 = atan(m2) * (180.0 / PI);
Run Code Online (Sandbox Code Playgroud)

在知道角度后,我计算如下:

double angle = abs(theta2 - theta1);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题或疑问是:有时候我会得到正确的角度,但有时我会得到互补的角度(对于我来说).我怎么知道减去何时180º知道内角?有没有更好的算法呢?因为我尝试了一些方法:点积,下面的公式:

result = (m1 - m2) / (1.0 + (m1 * m2));
Run Code Online (Sandbox Code Playgroud)

但总是我有同样的问题; 当我有外角或内角时我才知道!

c++ math trigonometry lines angle

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

angle ×1

c++ ×1

lines ×1

math ×1

trigonometry ×1