2012-05-20 132 views
0

我希望通過將對象(繪製函數)添加到屏幕沿着形狀外圍的適當位置來創建Shape(AWT)的動態輪廓。我希望每個對象之間的距離大致相等。 (對於相同效果的替代方法將會很好。)Java - 繪製動態形狀輪廓

我該如何獲取這些對象的位置?我知道形狀有一個路徑迭代器,但我不知道如何使用它。

+1

...什麼問題? – John3136

+0

我該如何獲取這些物體的位置?我知道形狀有一個路徑迭代器,但我不知道如何使用它。 –

+0

如果添加3個點以形成三角形形狀,則只有那3個點將在路徑迭代器中返回。 –

回答

2

您可能會看到如A Shape Diagram Editor中描述的庫。

如果你想實驗,GraphPanel是一個簡單的對象繪圖程序,其特點是可移動,可調整大小,彩色節點通過邊緣連接。如果節點稍小,則它們將是Shape上的可移動點,其可以被重複,如針對Polygon所示的here

附錄:我希望每個物體之間的距離大致相等。

class Node公開了許多在List<Node>上運行的靜態方法,如selected。例如,現有的實現可用於將多個選擇作爲一個單元進行翻譯或調整大小。可以類似地實現AlignDistribute的功能。作爲後者的例子,我會看看LayoutManger

+1

@AndrewThompson:好點;我忽略了這個問題的這個方面。更多上面。 – trashgod

+0

我看不出這有什麼幫助。有問題的問題是沿着形狀的周邊找到均勻分佈的點數。也許我對此並不十分清楚。 –

+0

這取決於'形狀';這是一個[示例](http://stackoverflow.com/a/2510048/230513),它依賴於一個圓的參數方程。它可以使用橢圓的參數方程推廣。 – trashgod

2

使用FlatteningPathIterator可獲得積分Shape's的路徑。你

也可以使用BasicStroke's方法

public Shape createStrokedShape(Shape s) 

得到Shape's輪廓與慾望的寬度。