Javascript 如何在新位置旋转dojox gfx形状?

Javascript 如何在新位置旋转dojox gfx形状?,javascript,svg,dojo,gfx,Javascript,Svg,Dojo,Gfx,如何在新位置旋转dojox gfx 形状是可移动的,必须在新位置旋转和缩放。为了演示,我使用了。看 如何在新位置和新中心旋转和缩放形状 提前感谢, mbecker由于修改了updateMatrix函数,我分叉了JSFIDLE(),添加了两个dijit/form/NumberSpinner(translateX和translateY)实例来移动蝴蝶: var updateMatrix = function() { var translateX = xSpinner.get("value")

如何在新位置旋转dojox gfx

形状是可移动的,必须在新位置旋转和缩放。为了演示,我使用了。看

如何在新位置和新中心旋转和缩放形状

提前感谢,

mbecker

由于修改了
updateMatrix
函数,我分叉了JSFIDLE(),添加了两个
dijit/form/NumberSpinner
(translateX和translateY)实例来移动蝴蝶:

var updateMatrix = function() {
    var translateX = xSpinner.get("value");
    var translateY = ySpinner.get("value");

    var centerX = 210 + translateX;
    var centerY = 170 + translateY;

    if(g) {
        g.setTransform([
            m.rotategAt(rotation, centerX, centerY), 
            m.scaleAt(scaling, centerX, centerY), 
            m.translate(translateX, translateY)
        ]);
    }
};
编辑:要添加鼠标DnD支持,请将以下代码添加到上述代码中:

var moveable = new Moveable(g);   // require("dojox/gfx/Moveable")
moveable.onMoved = function(mover, shift) {
    xSpinner.set("value", xSpinner.get("value") + shift.dx);
    ySpinner.set("value", ySpinner.get("value") + shift.dy);
}

当然,您不必使用
NumberSpinner
,但因为我在它给您一个很好的反馈之前就把它放在了那里,所以它可以很好地反馈幕后的情况。请访问jsFiddle:。

谢谢您的回答。蝴蝶形状可以用鼠标移动(按住蝴蝶可移动)。我的目的是移动形状,然后旋转它。在这里,检查上面的答案,然后。