我有以下由VTK多義線組成的域 - 每行以'x'開頭和結尾,可能有多個點,並且分配了左右標誌來表示該行左側和右側的區域,確定您是否從開始到結束行進。基於VTK多義線的區域查找
the domain of interest http://oi43.tinypic.com/vwsug5.jpg
爲域中的任何隨機點rp
,我需要找出它在哪個區域
到目前爲止,我已經嘗試:
- 計算最近的VTK指向
rp
,找到它所屬的曲線,然後計算rp
是否在曲線的左側或右側。這對閉合曲線不起作用,例如上圖中的區域1
,特別是如果它們不是連續的(即,一個retangle) - 將域分成桶:最初,包含vtk點的桶是充滿與該點相關的區域標誌;剩下的桶根據鄰居填充。其中
rp
下落的桶然後返回其標誌組。但是,如果存儲區包含多個區域標誌(即,當rp
靠近一行),則無法使其工作。
我認爲這可能是一個解決的問題,但我不太確定在哪裏看。我曾考慮過point-in-polygon問題,但我正在處理曲線而不是多邊形。其他想法涉及光線追蹤,但它似乎更適合於3D。
任何人都可以提出一個替代方案,或對我嘗試過的修改嗎?
你知道每行的開始和結束嗎? – fraxel 2012-03-23 13:10:17
@fraxel這些行是完全指定的(開始,結束,區域標誌) – BrT 2012-03-23 13:16:49
他們一定認爲,但我不認爲我們甚至需要:) – fraxel 2012-03-23 13:39:22