在这个SO问题中,有人询问如何从三个点计算角度。我需要做相反的事情。
我想画一个时钟,我有小的刻度图像。一个艺术家制作了60个图像,每个图像都有独特而准确的阴影。因此,有60个不同的图像,大小为10x10点,并已在该正方形的中心正确旋转。
因此,每6度必须放置一个刻度图像。我只需要根据中心点、半径和角度计算x/y坐标。
所以我有:
- 中心点
- 半径
- 角度
有没有一种简单的方法来计算x/y坐标?也许cocoa-touch已经有一个有用的函数或方法可以实现这个?
在这个SO问题中,有人询问如何从三个点计算角度。我需要做相反的事情。
我想画一个时钟,我有小的刻度图像。一个艺术家制作了60个图像,每个图像都有独特而准确的阴影。因此,有60个不同的图像,大小为10x10点,并已在该正方形的中心正确旋转。
因此,每6度必须放置一个刻度图像。我只需要根据中心点、半径和角度计算x/y坐标。
所以我有:
有没有一种简单的方法来计算x/y坐标?也许cocoa-touch已经有一个有用的函数或方法可以实现这个?
设角度为a,圆心坐标为(x,y),半径为r,那么您的点将位于
(x + r*cos(a), y + r*sin(a))
在数学中,从极坐标系计算出直角坐标系的方法是:
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正弦和余弦函数使用弧度。
你的图像(中心)应该放置在点(X,Y)处,其中(x,y)是中心点的坐标,r是半径
X = x + (r/2)*cos(angle);
Y = y + (r/2)*sin(angle);