我选择了一张图片,我认为它可以更好地描述我要计算的角度:



CGPoint P2在用户点击的任何位置,并且CGPoint P1始终具有其P1.y = P2.yP1.x = self.view.bounds.size.width/2

我想知道如果我想将角度基于x轴的中途,如何计算两点之间的角度?

谢谢!

最佳答案

角度是:

90-arctan((self.view.bounds.size.height - P2.y)/(P2.x - self.view.bounds.size.width/2))


(它将在行的右边为正,在行的左边为负。如果始终希望它为正,请使用abs()

我要做的基本上是将原点设置在屏幕的底部中心,然后计算从原点到P2的直线的斜率。然后arctan给出直线相对于X轴的角度。然后,您执行90-arctan(..)以使其尊重Y轴。

或者,您可以使用此公式,该公式与已经翻转的轴相同。

arctan((P2.x - self.view.bounds.size.width/2)/(self.view.bounds.size.height - P2.y))

关于ios - 无法获取攻丝点与中点x轴线之间的角度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17891875/

10-13 03:59