2012-11-15 109 views
0

對於這個圖像,我試圖爲每個「領域」定義一個形狀。我將如何完成這個工作?如何定義複雜的形狀?

Image that is to be divided into shapes

+0

這似乎是一個很好的起點:http://docs.oracle.com/javase/tutorial/2d/advanced/complexshapes.html - 你是想繪製它,還是做點擊檢測或其他的東西? – Krease

+0

你有什麼嘗試?你有什麼想法,我們可以改進? – wattostudios

+0

@Chris:我試圖在用戶點擊某個領域時發生了某些事情。我不知道是否有更好的方法來做到這一點:P –

回答

0

希望你可以定義你的領土的形狀,一系列的點 - 即(X1,Y1),(X2,Y2),等等,那麼你可以使用定義的命中測試的算法之一這裏:How can I determine whether a 2D Point is within a Polygon?(這裏有幾個很好的答案,一般來說,你可以調整概念以適應你的需求)。

1

我不知道你想怎麼實現,但這種通用的方法應該工作:

  • 使用離散,邊界線在圖像中分離的區域,所以他們不再強硬對方。 (例如,使用形態侵蝕)。
  • 對圖像執行「連接組件」(CC)操作,爲每個區域的像素(1,2,3,...)生成不同的標籤。你可以在網上找到一些代碼來做到這一點,但是編寫你自己的CC函數很容易。
  • 當用戶點擊某個區域時,將鼠標的X/Y座標映射到標籤圖像上以查找該點下的區域標籤,並報告標籤。