如何在新位置旋转 dojox gfx?
形状是可移动的,必须在新位置旋转和缩放。为了演示,我使用了dojox gfx 的 Butterly Demo。有关可移动蝴蝶的信息,请参见jsfiddle 的此示例。
如何在新位置和新中心旋转和缩放形状?
提前致谢,
贝克尔
如何在新位置旋转 dojox gfx?
形状是可移动的,必须在新位置旋转和缩放。为了演示,我使用了dojox gfx 的 Butterly Demo。有关可移动蝴蝶的信息,请参见jsfiddle 的此示例。
如何在新位置和新中心旋转和缩放形状?
提前致谢,
贝克尔
由于修改了函数,我分叉了你的 jsFiddle ( http://jsfiddle.net/phusick/ta65D/ ) 并添加了两个 (translateX & translateY) 实例来移动蝴蝶:dijit/form/NumberSpinner
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/。