相对指针位置

4

我需要帮助解决如何计算KineticJS舞台上相对指针位置的问题。

在我的情况下,我的舞台会改变位置偏移量缩放比例

以下是演示:http://jsfiddle.net/pCZzv/

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

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

我希望在鼠标被单击的位置出现红色圆圈。但是,当舞台发生偏移和缩放时,我遇到了问题。

1个回答

6
你计算的x和y坐标有些偏差。这是你示例的工作演示:http://jsfiddle.net/pCZzv/1/ 以下是相关的修改代码:
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)
    };
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接