2013-03-27 78 views
4

我需要一些幫助來計算如何計算KineticJS階段上的相對指針位置。相對指針位置

在我的情況下,我的階段變化position,offsetscale

以下是演示: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) 
    }; 
} 

我想要的紅色圓圈出現點擊鼠標時的位置。 當舞臺改變了它的偏移和縮放時,我遇到了問題。

回答

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

非常感謝您! – Skarbo 2013-03-27 16:25:19

+0

很好,謝謝! – kofifus 2014-04-10 06:44:31