У меня есть вопрос о следующей демонстрации - http://raphaeljs.com/hand.html.RaphaelJS - Мне нужна помощь в понимании трансформации
Вот код из образца ...
var r = Raphael("holder", 640, 480), angle = 0;
while (angle < 360) {
var color = Raphael.getColor();
(function(t, c) {
r.circle(320, 450, 20).attr({
stroke : c,
fill : c,
transform : t,
"fill-opacity" : .4
}).click(function() {
s.animate({
transform : t,
stroke : c
}, 2000, "bounce");
}).mouseover(function() {
this.animate({
"fill-opacity" : .75
}, 500);
}).mouseout(function() {
this.animate({
"fill-opacity" : .4
}, 500);
});
})("r" + angle + " 320 240", color);
angle += 30;
}
Raphael.getColor.reset();
var s = r.set();
s.push(r.path("M320,240c-50,100,50,110,0,190").attr({
fill : "none",
"stroke-width" : 2
}));
s.push(r.circle(320, 450, 20).attr({
fill : "none",
"stroke-width" : 2
}));
s.push(r.circle(320, 240, 5).attr({
fill : "none",
"stroke-width" : 10
}));
s.attr({
stroke : Raphael.getColor()
});
У меня есть вопрос о следующей строке кода ...
("r" + angle + " 320 240", color);
В анонимной функции круг первоначально обращается при 320, 450 с радиусом 20. Затем применяется преобразование, например («r30 320 240»), когда угол равен 30.
Как это преобразование работает? То, как я прочитал это преобразование, - это поворот круга на 30 градусов вокруг 320,450, затем перемещение 320 по горизонтали (вправо) и 240 по вертикали вниз.
Но я, очевидно, читаю это преобразование неправильно, потому что это не то, что происходит.
Что мне не хватает?
Благодаря
Отлично, спасибо Мэтту, это имеет смысл. Я ценю ваш пример, это помогло мне разобраться. Нарисуйте круг в определенной точке, затем поверните его вокруг другой точки. Еще раз спасибо! Я постараюсь проголосовать, но не уверен, что у меня еще достаточно репутации. – RDotLee