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

Iphone 如何计算具有给定中心、角度和半径的点?,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,。我需要做相反的事情 我想画一个时钟,我有微小的滴答声图像。一位艺术大师制作了60个,每个都有一个独立而精确的阴影。因此,有60个不同的图像,大小为10x10点,已经在该正方形的中心正确旋转 因此,每6度必须放置一个刻度图像。我只需要根据中心点、半径和角度计算x/y坐标 因此,我: 中心点 半径 角度 有没有一种简单的方法来计算x/y坐标?也许cocoa touch已经有了一个有用的功能或方法?让a为角度,(x,y)为中心点,r为半径,那么您的点将位于 (x + r*cos(a), y +

。我需要做相反的事情

我想画一个时钟,我有微小的滴答声图像。一位艺术大师制作了60个,每个都有一个独立而精确的阴影。因此,有60个不同的图像,大小为10x10点,已经在该正方形的中心正确旋转

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

因此,我:

  • 中心点
  • 半径
  • 角度

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

a为角度,(x,y)为中心点,r为半径,那么您的点将位于

(x + r*cos(a), y + r*sin(a))
图像(中心)应放置在点(X,Y)上,其中(X,Y)是中心点的坐标,r是半径

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

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

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正弦和余弦函数以弧度为单位。

我刚刚意识到,unbeli的答案已经应用了修正,使角度从顶部开始,以时钟面预期的自然方式顺时针移动。+1。我无法使unbeli的解决方案工作,但您的解决方案工作了(使用JavaScript)。下面是一个片段,用于从HTML5画布的中心以指定角度绘制一条线。注意从3点钟开始四处走动的技巧:x0=ctx.canvas.width/2;y0=ctx.canvas.height/2;ctx.lineTo((x0+r*Math.cos(toRad(angle-90))),(y0+r*Math.sin(toRad(angle-90)));正弦和余弦在这里是相反的