1

在此处查看jsfiddle 示例

我正在尝试放大图表并在其周围平移,然后在图表上的特定位置放置一个大头针,但我不确定动力学缩放是如何工作的。当我需要计算相对于观察口的下降坐标时,这是一个问题。

该演示在 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
    };    
}
4

1 回答 1

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
    };    
}

示例http://jsfiddle.net/lavrton/B8UDq/4/

于 2013-03-12T01:38:16.323 回答