2013-08-12 51 views
1

我需要以圖形方式連接兩個項目。使用EaselJS在兩個對象之間繪製任意線的最佳方法是什麼?是否有可能製造類似於最接近物體的磁鐵線?使用EaselJS繪製任意線條

你會有這樣的例子嗎?

問候。

回答

3

最簡單/最快的方法可能是使用一個形狀,並使用moveTo()與第一個對象的座標,然後lineTo()與第二個對象的座標。每當物體移動時,清除並重新繪製線條。 性能明智我不能說如果這是最好的方式,但如果它不是太多的線路和桌面只有我不擔心,那麼你應該沒問題。

另一種選擇是使用一個位圖,它包含一個直線和刻度+將其旋轉到正確的長度/角度,如果您希望您的行以任何方式「幻想」,這可能會更方便,用形狀繪製太困難。

+0

這兩種方法對我來說似乎都很好,但我認爲我不會重畫這條線,因爲它可以在移動設備上使用。 只是一個問題涉及到第一種方式,有沒有什麼辦法來檢查兩點之間的界線是否與第三個物體發生碰撞? – Cod1ngFree

+0

當然,方法1)(可能)表現最好的方法:測量從obj3到線的距離:http://en.wikipedia.org/wiki/Distance_from_a_point_to_a_line,如果它低於某個閾值(寬度/高度obj3)然後你必須檢查它是否在obj1和obj2之間,如果是的話,那麼它會發生交叉。 **或**方法2)(更準確一些)計算obj3的邊界並對該矩形的每一邊使用一個線條檢查:http://en.wikipedia.org/wiki/Line-line_intersection,另外你'必須檢查是否有一個相交點位於obj1 + 2 – olsn

+0

或方法3之間)最差的表現,但容易和像素完美的方法(只適用於位圖和**而不適用於形狀)您可以放置​​線條,然後進行像素碰撞檢查(https://github.com/olsn/Collision-Detection-for-EaselJS),然後在碰撞時執行操作。 – olsn