如何计算具有给定中心,角度和半径的点?

时间:2010-05-26 12:12:47

标签: iphone objective-c cocoa-touch

In this SO question, someone asked for calculating an angle from three points。我需要做相反的事情。

我想画一个时钟,我有很小的刻度图像。一个艺术家伙制作了60个,每个人都有一个个性和准确的阴影。因此,在10x10点处有60个不同的图像,已经在该正方形的中心正确旋转。

所以必须每隔6度一个刻度图像。我只需要根据中心点,半径和角度计算x / y坐标。

所以我有:

  • 中心点
  • 半径
  • 一个角度

有一种简单的方法来计算x / y坐标吗?也许cocoa-touch已经有了一个有用的功能或方法吗?

3 个答案:

答案 0 :(得分:20)

a 为角度,(x,y)为中心点, r 为半径,那么你的点将在< / p>

(x + r*cos(a), y + r*sin(a))

答案 1 :(得分:19)

在数学中,要从极坐标计算笛卡尔坐标:

x = r * cos(A) + x0;
y = r * sin(A) + y0;

其中(x0,y0)是圆的中心,r是半径,A是角。

但是假定数学坐标惯例,即x向右移动时增加,y随着向上移动而增加。这是Mac OS X Cocoa视图的默认设置,但我不知道它在iPhone上是否相同。

角度也从3点开始逆时针旋转,即3点钟为0度,12点钟为90度,9点钟为180度,6点钟为270度。

此外,C正弦和余弦函数以弧度工作。

答案 2 :(得分:1)

您的图像(中心)应放置在(X,Y)点,其中(x,y)是中心点的坐标,r是半径

X = x + (r/2)*cos(angle);
Y = y + (r/2)*sin(angle);