将20个SKSpriteNode排列成一个圆圈

时间:2015-04-28 18:50:40

标签: objective-c sprite-kit skspritenode

我有一个名为20个SKSpriteNode对象的数组。我想在这样的圆圈中安排这些节点:

Circular arrangement of 12 nodes

只有20个而不是12个节点。它也应该更准确。

1 个答案:

答案 0 :(得分:3)

这个问题可以用一点点数学解决。具有半径r的点(x0,y0)周围的圆可以写为

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

t从0到2π。如果您将此范围内的任何数字插入这些方程式,您将获得该圆上单个点的坐标。要获得相等的距离,您只需将整个范围2π除以您想要排列的项目数(20),并将其用作对象之间的t步。然后,您可以使用参数圆方程来计算坐标并设置精灵节点的位置属性。