我絕不是專業程序員,所以請不要期待這裏有複雜的方法或語言。不過,我會感謝您的建議和建議,以實現一個算法,在稍後階段,我可以以編程方式添加到我的項目...這是問題:不規則形狀內的點
想象一下任意點(點X)以下屬性:
- 具有座標
- 位於一個2D表面
- 是靜止
- 屬於單個區域(其中邊界座標也是已知的)在任何給定的時間。也就是說,它是其「父」元素的唯一「孩子」。再一次,如果它不坐在一個區域,它肯定坐在另一個區域內!
一個區域不是簡單的正方形,四邊形或圓形,而是一個不規則的形狀。我現在的問題是:我如何確定: (i)如果X點位於特定區域內而不是鄰近區域; (ii)該點屬於哪個特定區域(在一組區域A,B或C中)?見鏈接的圖像更好地看到問題:
PS:我仔細研讀處理Point in Polygon問題(特別是「光線投射算法」,聽起來很聰明!)的可能性,但它似乎沒有因爲(i)區域可能彼此相鄰; (ii)我需要確定一個點所屬的區域多於它位於其內部/外部的區域。
非常感謝您提前!
如果區域的邊界可能有曲率,區域的「邊界座標」如何表示該區域的實際邊界?您是使用某種曲線參數化還是使用多邊形逼近區域? –
光線投射算法的變體可能會起作用。如果你從你的觀點投射出一束光線,並觀察它發出的第一個邊緣,你就會知道你的觀點是在分享這一邊緣的(最多)兩個區域之一內。然後,您可以對兩個候選區域的每一個使用兩次光線投射算法。 –
對不起,我的錯 - 我進一步編輯了我的問題:在2D中定義了形狀(面)段的座標,沒有曲率! –