2010-12-02 260 views
7

就像標題所說的那樣,我需要將矩形劃分爲隨機形狀的多邊形。將矩形劃分爲隨機形狀的多邊形

例如,7個多邊形:

+--------+--------+ 
|\  | 2 | 
| \ 1 |''--..__| 
| ------| 5  | 
| 3/ \________| 
| / /\ 6 | 
|__/ 4/\______| 
| /7  | 
+-----+-----------+ 

我不知道是否有一個算法已經在那裏了,但我似乎無法讓我的頭解決這個問題。

我並不特別在乎你回答的是什麼語言,但我將在Java/Swing中實現。

+2

我不認爲你的意思是「隨機形」的多邊形;在你的例子中那些多邊形不是隨機的形狀。你的意思是說你不關心多邊形的形狀?這與「隨機形狀」不同。 – 2010-12-02 00:25:42

+0

@McWafflestix:那麼,「隨機形」意味着什麼?我的意思是,如果多次運行此算法,生成的多邊形將各不相同。 – 2010-12-02 00:43:26

+0

「隨機」意味着與該集合中的其他成員沒有關係;對於按照您指示的方式分解的矩形,某些成員與其他成員有關係(例如,常見邊緣長度)。 – 2010-12-02 00:45:50

回答

3

我會在整個矩形上繪製一束隨機線,然後在每條線交叉處「分割」線條,這樣基本上就有了一些網線。然後根據需要去除儘可能多的隨機線段,直到達到所需數量的多邊形。

編輯:那麼您樣品它會一直這樣添加行之後:

+----+---+----+---+ 
|\'--.\_/| / | 
| \ X |''/-..__| 
|--\--+-\+-/------| 
|___\/___\/_______| 
| /\ /\  | 
|__/__\_/|_\______| 
|/ X | \  | 
++----+-++---+----+