2016-02-26 206 views
0

我在我的項目中使用KonvaJs。我使用Konva.Line通過設置closed:true來創建多邊形。我需要弄清楚一個點是否在多邊形內部。我正在使用Ray-Casting算法找到多邊形中的點,它工作正常。但是當拖動多邊形時會出現問題。拖動時,頂點(點)仍然保持不變,因此我無法獲得新的座標。如何更改多邊形的點以便我可以使用它們?這裏是plunkrKonvaJs:拖動時改變點的線路

回答

4

雖然拖動Konva會改變{x,y} Node(Circle,Rect,Line等)的屬性。所有你需要的是增加xypoints

vs.push({ 
    x: points[i] + poly.x(), 
    y: points[i + 1] + poly.y() 
}); 

http://plnkr.co/edit/P6xTokR4bR8o1D180k40?p=preview

+0

你釘它的兄弟。萬分感謝。 :) –

+0

嗨拉夫頓,當形狀被添加到一個組,然後我拖動組,然後添加座標方法無法正常工作。假設我在小組中有一個圈子。當組被拖動時,我需要獲取更新的圈子位置。通過將x,y添加到圓的位置不會正確更新座標。我的意思是它將圈子帶到不同的位置:(在這種情況下,我應該怎麼做?我已經創建了plunkr。http://plnkr.co/edit/V7RWHYZUH8wndDhDioXH?p=preview –

+0

@HiteshKumar,爲什麼只是將它們添加到一個可拖動的組? – lavrton