需要算法WPF线的角度(Need algorithm for angle of WPF line)

2019-09-28 10:36发布

什么是“正确”的算法从一个WPF线计算度角?

Answer 1:

你需要atan2 。 然而,这将让你在弧度的角度,:-)的角度计算公式转换为度必须易于atan2(y2 - y1, x2 - x1)其中(x1, y1)(x2, y2)是你的行结束。

需要注意的是常量pi是可用的 ,太。



Answer 2:

要转换为度,你可以使用乘法器(180度/ Math.PI弧度)。 这个转换因子通过注意Math.PI弧度相当于180度得到的。 因此,如果theta1是弧度然后theta2 = theta1 *(180 / Math.PI)将等同于不同之处在于它将具有的度单元theta1。

要计算线的角度,你会使用标准的公式切线从三角,然后取双方的反正拿到THETA

黄褐色(THETA)=相反/相邻 - > THETA =反正切(对面/相邻的)

这可以通过形成适当的三角形被应用到您的生产线。 为此,选择就行了(X1,Y1)和(x2,y2)的任意两点。 然后,可以形成与斜边为(X1,Y1)和(X2,Y2)之间的线段的唯一直角三角形的相反侧为长度的竖直线段(Y2 - y1)和相邻的侧为水平长度的线段(X2 - X1)。

您可以通过计算计算的θ值

Double theta = (180/Math.PI) * Math.Atan2(opposite, adjacent);

相邻时是零的功能将自动完成的情况下(这将通过零误差通常会导致除法),并将返回的最适当的角度(90度或-90度)的情况除外当两个相反且相邻为零。 在这种情况下theta是零,这并没有太大的意义。 它真的应该在这种情况下抛出一个异常,因为没有办法数学确定从具有零长度的斜边的三角的角度。



文章来源: Need algorithm for angle of WPF line