我选择了一张照片,我认为可以更好地描述我想要计算的角度:
CGPoint P2
是用户点按的任意位置,CGPoint P1
始终拥有P1.y = P2.y
和P1.x = self.view.bounds.size.width/2
。
我想知道如何计算两点之间的角度,因为我想将角度基于中间的x轴?
谢谢!
答案 0 :(得分:1)
角度是:
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))