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

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

4

1 回答 1

6

您对xy坐标的计算略有偏差。这是您的示例的工作演示: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)
    };
}
于 2013-03-27T14:06:40.490 回答