다음 데모에 대한 질문이 있습니다 - 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에서 반경 20 인 450을 만듭니다. 그런 다음 각도가 30 일 때 변형이 적용됩니다 (예 : "r30 320 240").
이 변환은 어떻게 작동합니까? 이 변환을 읽는 방법은 320,450 주위에서 원을 30도 회전시킨 다음 수평으로 (오른쪽으로) 320을 수직으로 아래로 이동하는 것입니다.
하지만 분명히이 변환은 잘못된 것입니다. 왜냐하면이 일이 일어나지 않기 때문입니다.
내가 무엇이 누락 되었습니까?
감사
우수 감사합니다. Matt, 그 말이 맞습니다. 나는 그것을 명확하게하는 데 도움이되는 당신의 모범을 고맙게 생각합니다. 특정 점에서 원을 그린 다음 다른 점을 중심으로 원을 그립니다. 다시 한 번 감사드립니다! 나는 위로 표를하려고 노력할 것이다. 그러나 나는 아직 충분한 평판을 가지고 있다고 확신하지 못한다. – RDotLee