Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 相对指针位置_Javascript_Canvas_Kineticjs - Fatal编程技术网

Javascript 相对指针位置

Javascript 相对指针位置,javascript,canvas,kineticjs,Javascript,Canvas,Kineticjs,我需要一些帮助,弄清楚如何计算舞台上的相对指针位置 在我的情况下,我的阶段改变了,并且 以下是演示: 我希望红色圆圈出现在单击鼠标的位置。 当舞台改变了它的偏移量和比例时,我遇到了问题。你对x和y坐标的计算有点偏差。这是您的示例的工作演示: 以下是相关的变更代码: function getRelativePointerPosition() { var pointer = stage.getPointerPosition(); var pos = stage.getPosition

我需要一些帮助,弄清楚如何计算舞台上的相对指针位置

在我的情况下,我的阶段改变了,并且

以下是演示:

我希望红色圆圈出现在单击鼠标的位置。
当舞台改变了它的偏移量和比例时,我遇到了问题。

你对
x
y
坐标的计算有点偏差。这是您的示例的工作演示:

以下是相关的变更代码:

function getRelativePointerPosition() {
    var pointer = stage.getPointerPosition();
    var pos = stage.getPosition();
    var offset = stage.getOffset();
    var scale = stage.getScale();

    return {
        x : ((pointer.x / scale.x) - (pos.x / scale.x) + offset.x),
        y : ((pointer.y / scale.y) - (pos.y / scale.y) + offset.y)
    };
}
function getRelativePointerPosition() {
    var pointer = stage.getPointerPosition();
    var pos = stage.getPosition();
    var offset = stage.getOffset();
    var scale = stage.getScale();

    return {
        x : ((pointer.x / scale.x) - (pos.x / scale.x) + offset.x),
        y : ((pointer.y / scale.y) - (pos.y / scale.y) + offset.y)
    };
}