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

don*_*ile 18 iphone cocoa-touch objective-c

在这个SO问题中,有人要求从三个点计算角度.我需要做相反的事情.

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

因此,必须每6度一个刻度图像放置.我只需要根据中心点,半径和角度计算x/y坐标.

所以我有:

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

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

unb*_*eli 22

a是角度,(x,y)是中心点,r是半径,那么你的点就是

(x + r*cos(a), y + r*sin(a))
Run Code Online (Sandbox Code Playgroud)

  • 正弦和余弦在这里颠倒过来 (5认同)

Jer*_*myP 20

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

x = r * cos(A) + x0;
y = r * sin(A) + y0;
Run Code Online (Sandbox Code Playgroud)

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

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

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

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