将新的SKSpriteNodes定位在现有旋转的SKSpriteNode的角落

时间:2013-10-03 15:18:34

标签: iphone objective-c geometry sprite-kit skspritenode

我需要在现有精灵的角落产生4个新的SKSpriteNodes(独立的非父级)。它非常基本的东西,但我正在努力找到正确的公式,我虽然我有它但它没有按预期工作。有些人可能会指出我正确的公式,或者帮我解决任何给定轮换计算4 [x,y]对的一些指导。非常感谢。

enter image description here

  1. 将每个点的旋转中心移动到原点。
  2. xnew = x * cos(角度) - y * sin(角度)
  3. ynew = y * cos(角度)+ x * sin(角度)
  4. 将每个点的旋转中心移回原位。

1 个答案:

答案 0 :(得分:1)

如果您不想自己做数学运算,可以使用CGPointApplyAffineTransformCGAffineTransformMakeRotation。你的数学看起来几乎看起来几乎是正确的,我相信你只需要减去中心点。所以xnew将是(x - x_c)* cos(a) - (y - y_c)* sin(a)。现在无法测试所以不能百分百肯定。