0

dojox gfxを新しい位置で回転させる方法は?

形状は移動可能であり、新しい位置で回転および拡大縮小する必要があります。デモには、dojoxgfxのButterlyDemoを使用しました。可動バタフライについては、jsfiddleのこの例を参照してください。

新しい位置と新しい中心で形状を回転および拡大縮小するにはどうすればよいですか?

前もって感謝します、

mbecker

4

1 に答える 1

2

jsFiddle(http://jsfiddle.net/phusick/ta65D/ )をフォークし、関数dijit/form/NumberSpinnerを変更してバタフライを移動するために(translateX&translateY)の2つのインスタンスを追加しました。updateMatrix

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でそれを参照してください:http://jsfiddle.net/phusick/ta65D/

于 2012-09-28T21:51:04.073 に答える