使用kinetic.js在缩放图上绘制点

时间:2013-03-11 23:46:11

标签: kineticjs

请参阅jsfiddle example here

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

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

1 个答案:

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

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