Вот мой сценарий:
<script>
Raphael.fn.polyline = function(pointString) {
return this.path("M" + pointString);
};
window.onload = function() {
var paper = Raphael("holder", 500, 500);
paper.circle(100, 175, 70).attr({"stroke-width":10, "stroke":"red"});
var a = paper.polyline("92,102 96,91 104,91 108,102").attr({"fill":"green", "stroke-opacity":"0"}).rotate(25, 100, 175);
var b = paper.polyline("92,102 96,91 104,91 108,102").attr({"fill":"green", "stroke-opacity":"0"}).rotate(45, 100, 175);
var c = paper.polyline("92,102 96,91 104,91 108,102").attr({"fill":"green", "stroke-opacity":"0"}).rotate(65, 100, 175);
var group = paper.set();
group.push(a, b, c);
group.translate(60);
};
</script>
Когда я использую Raphael-1.5.2, результат будет:
Когда я использую Raphael 2.0, результат будет:
В 1.5.2 он использует преобразование поворота для поворота объектов вокруг круга, а в 2.0 он использует матричное преобразование.Я предполагаю, что матричное преобразование преобразует систему координат для этого объекта, поэтому при последующем переводе объекта в направлении xy он переводит его в относительное для этого объекта значение xy.
Мне нужно добавитьзеленые объекты по краю красного круга, а затем сможете перетаскивать и перемещать все в одном направлении.Я застрял на 1.5.2 или мне просто не хватает, как изменился перевод в 2.0?