0

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

在此处输入图像描述

CGPoint P2是用户点击的任何地方,并且CGPoint P1总是有它的P1.y = P2.yand P1.x = self.view.bounds.size.width/2

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

谢谢!

4

1 回答 1

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))
于 2013-07-26T22:27:24.680 回答