|
|
1
7
与水平面成90度以上的线的终点位置.x的x值将小于location.x。 所以你不需要所有的胡说八道,这就足够了:
编辑: 似乎OP意味着45度而不是90度,这意味着上述简化不再适用。为此,最好使用atan2(正如slaks指出的那样),但本着不使用tan的精神:
请注意,如果只需要指向右侧的行,则只需要进行第二次检查。 |
|
|
2
3
你应该打电话
|
|
|
3
3
我不认为有一个库方法可以找到两个向量之间的角度,你做得正确(数学是正确的),快速浏览一下msdn和google并没有提供任何东西。我会用Slaks版本的
一件有趣的事情需要注意,因为你使用“水平”作为你的平面来确定角度是否大于90度。如果从正x轴测量,那么endinglocation.x<location.x的角度将始终大于90度。 编辑: 原始问题改为45度检查。 下面的部分讨论了如何在不进行浮点除法的情况下根据操作人员的评论进行除法。
如果你有一个45度的角度,我们知道一些事情,而不必打电话给你。
首先,45度角的斜率是1。所以如果
您的角度是45度,但是45度角的排列在一个圆中出现4次。我们需要检查一些东西。
如果
所以如果一个if语句跟在
我们可以确定角度是否大于45度,而无需进行任何浮点计算。 |