2011-10-11 222 views
1

我正在尋找用矩形填充任意2D形狀,例如通過查看矩形的合成圖像使2D圖形變爲可見。最終結果應該看起來類似於這個應用程序生成的圖像:http://www.shapecollage.com/(不,我不想複製所述應用程序,但我想提供類似的功能作爲更大的應用程序的一部分)。用矩形填充2D形狀

我從this知道這個問題,我的問題的最佳解決方案可能不存在,但一個合理的好結果應該是可能的,並且足夠我的意思。到目前爲止,我已經嘗試基於洪水填充算法的思想以下兩種方法:

方法1

  1. 開始與形狀的任意點,在這一點上繪製一個矩形。
  2. 檢查的點的右側,底部,左側和前一圖像的頂部,例如,如果與前一圖像

    吸入並排檢查點對應於下一個圖像的中心//爲右移找到新x座標的示例

    newCenter.x = oldCenter.x + oldWidth + newWidth;

  3. 檢查新的中心點是否爲a)2D形狀和b)不在已繪製的矩形內。如果兩個條件都滿足,繪製矩形並在第2步繼續,否則不要做任何事情。

方法2

同方法1,但沒有條件,即矩形的新中心不允許是繪製的矩形內。相反,所有方向都會添加填充。

// Example of finding new x-coordinate for right move 
newCenter.x = oldCenter.x + oldWidth + newWidth + padding; 

這兩種方法都提供極其有限的結果,並不能完全填充形狀,雖然有時輪廓的部分成爲可見的方法1.

我很高興爲任何投入,想法或成熟的方法我可以嘗試獲得類似於上述示例的結果。謝謝!

+0

像你一樣需要多邊形鑲嵌,而不是填充。 –

回答

0

如果您只需要緊密(不完美)地複製形狀而不是顏色,只需將您的形狀放置在虛擬網格上,然後在矩形或隨機選擇的圖片中填充其形狀。你也可以旋轉它們,所以它不是太無聊。

+0

不錯的想法,會嘗試它,並告訴你它是怎麼回事 – Robin