我正在尝试放大图表并平移它,然后将图钉放在图表上的特定位置,但我不确定动力学缩放是如何工作的。当我需要计算相对于观察端口的下降坐标时,这是一个问题。
该演示在scale = 1时运行良好,但是当您使用滚轮鼠标滚动或向外滚动时,引脚会掉落在错误的位置。
这个错误的功能是:
function getRelativePos(shape,stage) {
var mousePos = stage.getUserPosition();
var pos = shape.getAbsolutePosition();
var size = shape.getSize();
var scale = shape.getScale();
var x = (mousePos.x - pos.x) * scale.x ;
var y = (mousePos.y - pos.y) * scale.y ;
return {
x:x,
y:y
};
}
答案 0 :(得分:1)
我修复了功能:
function getRelativePos(shape,stage) {
var mousePos = stage.getUserPosition();
var pos = shape.getAbsolutePosition();
var scale = shape.getScale();
// return relative mouse position
var x = (mousePos.x - pos.x) / scale.x ;
var y = (mousePos.y - pos.y) / scale.y ;
return {
x:x,
y:y
};
}