Размещение новых SKSpriteNode в углах существующего повернутого SKSpriteNode

Мне нужно создать 4 новых SKSpriteNodes (независимых, не связанных) в углах существующего спрайта. Это довольно простые вещи, но я изо всех сил пытаюсь найти правильную формулу, хотя она у меня была, но она не работает, как ожидалось. Может ли кто-нибудь указать мне на правильную формулу или помочь мне с некоторыми рекомендациями по вычислению 4 пар [x, y] для любого данного вращения. Очень признателен.

введите описание изображения здесь

  1. Переместите центр вращения для каждой точки в исходную точку.
  2. xnew = x * cos (угол) - y * sin (угол)
  3. ynew = y * cos (угол) + x * sin (угол)
  4. Верните центр вращения для каждой точки в исходное положение.

person fuzzygoat    schedule 03.10.2013    source источник


Ответы (1)


Вы можете использовать CGPointApplyAffineTransform вместе с CGAffineTransformMakeRotation, если не хотите делать математику самостоятельно. Хотя на первый взгляд ваша математика выглядит почти правильно, я считаю, что вам просто нужно вычесть центральную точку. Таким образом, xnew будет (x - x_c) * cos (a) - (y - y_c) * sin (a). Не могу протестировать прямо сейчас, поэтому не могу быть уверен на 100%.

person Matt    schedule 03.10.2013
comment
Спасибо, Мэтт, я буду смотреть на них, очень признателен. - person fuzzygoat; 03.10.2013
comment
Мэтт, у меня еще не было возможности попробовать это, но я прочитал документацию и, похоже, это именно то, что мне нужно, еще раз спасибо за то, что нашли время, чтобы ответить. - person fuzzygoat; 03.10.2013