DisplayObject.rotation не соответствует триггерным функциям - PullRequest
1 голос
/ 19 марта 2010

Я пытаюсь пометить анимированную круговую диаграмму, и у меня возникли большие проблемы с приведением повернутых объектов в соответствие с тригонометрически расположенными объектами. Так, например, если у меня есть кусок пирога, середина которого равна углу тета и повернута на n градусов в анимации движения, а затем я пытаюсь расположить метку с кодом, подобным этому:

label.x = center.x + Math.cos((theta + n)/180 * Math.PI) * radius;
label.y = center.y + Math.sin((theta + n)/180 * Math.PI) * radius;

метка часто не выровнена по центру кусочка пирога. Поскольку я также сильно увеличиваю круговую диаграмму, ошибка становится достаточно значительной, что иногда приводит к тому, что метка пропускает круговую часть. Ошибка кажется относительно непредсказуемой, и она очень похожа на ошибку округления, но я не вижу никакого очевидного округления (функции триггера оценивают до десяти или около того десятичных знаков, которых здесь должно быть более чем достаточно).

Как мне правильно расположить эти ярлыки?

1 Ответ

0 голосов
/ 20 марта 2010

rx = xcos @ + ysin @

ry = -xsin @ + ycos @

Если вы вращаетесь от (0,1), то:

rx = sin @

ry = cos @

Итак, вместо cos для x и sin для y выше вы должны использовать sin для x и cos для y.

label.x = center.x + Math.sin((theta + n) * Math.PI / 180) * radius;
label.y = center.y + Math.cos((theta + n) * Math.PI / 180) * radius;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...