判斷一個點是否在多邊形內(nèi)部 如何判斷一個點是否在一個多邊形內(nèi)?
如何判斷一個點是否在一個多邊形內(nèi)?假設(shè)多邊形的坐標存儲在一個數(shù)組中。首先,我們需要得到陣列在橫坐標和縱坐標上的最大值和最小值,并根據(jù)這四個點計算出一個四邊形。首先要判斷目標坐標點是否在四邊形內(nèi)。如果在
如何判斷一個點是否在一個多邊形內(nèi)?
假設(shè)多邊形的坐標存儲在一個數(shù)組中。首先,我們需要得到陣列在橫坐標和縱坐標上的最大值和最小值,并根據(jù)這四個點計算出一個四邊形。首先要判斷目標坐標點是否在四邊形內(nèi)。如果在四邊形之外,我們可以跳過更復(fù)雜的計算,直接返回false。
//我不能通過這個測試。。。直接返回false;
下一步是核心算法部分:
首先,參數(shù)nvert表示多邊形的幾個點。浮點數(shù)testx和testy分別表示待測點的橫坐標和縱坐標,*vertx和*verty分別表示多邊形橫坐標和縱坐標數(shù)組的第一個地址。
我們注意到每個計算都涉及兩個相鄰點和要測試的點,然后考慮兩個問題:verty[J]<testy< verty[i
]2?如果你不明白If語句的后半部分,請在紙上寫下I和j之間的斜率公式。在初中階段你需要運用一點解析幾何和不等式的知識。對于大多數(shù)代碼農(nóng)民來說,這是小菜一碟。