Jquery SVG преобразование странное поведение

Я пытаюсь повернуть SVG <polygon> (или любой другой элемент), используя это:

var svg = new $.svg._wrapperClass($('#test'));
$(svg._svg).animate({svgTransform: 'rotate(720,100,100)'}, 2000);​

Многоугольник действительно меняет свой угол, но с какой-то странной траекторией движения. Пожалуйста, перейдите по этой ссылке, чтобы увидеть его: http://jsfiddle.net/ExaBP/

Моя цель - сделать так, чтобы многоугольник вращался вокруг своего центра.

1 ответ

Решение

Проблема в том, что центр вращения вашего многоугольника находится на координате (0,0) > посмотрите на точки:

points="38.8313,102.22 42.1242,104.613 45.4171,107.005 44.1593,110.876 42.9015,114.747 38.8313,114.747 34.7611,114.747 33.5034,110.876 32.2456,107.005 35.5384,104.613"

Таким образом, если вы используете (cx,cy) для поворота в animate, эти параметры также будут анимированными, от 0 до 100, затем до 0.

Вы должны изменить центр до и после анимации.

Но здесь, я думаю, вам нужен другой подход:

  • Попробуйте создать свой SVG прямо в HTML или JS
  • или попробуйте изменить происхождение координат в вашей программе рисования перед экспортом.
Другие вопросы по тегам