Kineticjs 使用kinetic.js在比例图上绘制点

Kineticjs 使用kinetic.js在比例图上绘制点,kineticjs,Kineticjs,看 我试着放大一张图,在它周围平移,然后在图上的一个特定位置放置一个大头针,但我不确定动态缩放是如何工作的。当我需要计算出相对于观察端口的落差坐标时,这是一个问题 演示在scale=1时可以正常工作,但当您使用滚轮鼠标进行滚动时,针脚会掉到错误的位置 此函数不正确: function getRelativePos(shape,stage) { var mousePos = stage.getUserPosition(); var pos = shape.getAbsolutePo

我试着放大一张图,在它周围平移,然后在图上的一个特定位置放置一个大头针,但我不确定动态缩放是如何工作的。当我需要计算出相对于观察端口的落差坐标时,这是一个问题

演示在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
    };    
}
I固定功能:

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

I固定功能:

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