2013-03-11 30 views
1

縮放圖上繪製點見jsfiddle example here使用kinetic.js

我試圖放大它周圍的圖,平移,然後在圖上的特定位置放置一個圖釘,但我不知道怎麼動力學縮放工程。當我需要計算相對於查看端口的下降座標時,這是一個問題。

該演示程序在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 
    };  
} 

回答

1

我固定功能:

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

http://jsfiddle.net/lavrton/B8UDq/4/

+0

這似乎是正確 – allenhwkim 2013-03-12 03:58:34

+0

您的權利不會。謝謝。答案被編輯。 – lavrton 2013-03-12 08:23:43