我选择了一张图片,我认为它可以更好地描述我要计算的角度:CGPoint P2
在用户点击的任何位置,并且CGPoint P1
始终具有其P1.y = P2.y
和P1.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/