我选择了一张图片,我认为它可以更好地描述我要计算的角度:
CGPoint P2
是用户点击的任何地方,并且CGPoint P1
总是有它的P1.y = P2.y
and P1.x = self.view.bounds.size.width/2
。
我想知道如何尝试计算两点之间的角度,因为我想将角度基于 x 轴的中途?
谢谢!
我选择了一张图片,我认为它可以更好地描述我要计算的角度:
CGPoint P2
是用户点击的任何地方,并且CGPoint P1
总是有它的P1.y = P2.y
and 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))