In this SO question, someone asked for calculating an angle from three points。我需要做相反的事情。
我想画一个时钟,我有很小的刻度图像。一个艺术家伙制作了60个,每个人都有一个个性和准确的阴影。因此,在10x10点处有60个不同的图像,已经在该正方形的中心正确旋转。
所以必须每隔6度一个刻度图像。我只需要根据中心点,半径和角度计算x / y坐标。
所以我有:
有一种简单的方法来计算x / y坐标吗?也许cocoa-touch已经有了一个有用的功能或方法吗?
答案 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);