這個問題已經在這裏有一個答案:
Point in Polygon aka hit test
C# Point in polygon如何檢查點(x,y)是多邊形內部的直角座標系上?
鑑於笛卡爾與N線方程制定座標系統隨機多邊形,有沒有標準公式是用於檢查點(x,y)的成員資格?
簡單的解決辦法是讓所有的線公式和檢查點X這條線之下,高於線和其他線路,等權但這可能會是乏味的。
我應該注意的是,多邊形可與任何數量的邊的任何形狀,並且可以凹面或凸面。
爲了方便我已經添加了這些實用的功能:
float slope(CGPoint p1, CGPoint p2)
{
return (p2.y - p1.y)/(p2.x - p1.x);
}
CGPoint pointOnLineWithY(CGPoint p, float m, float y)
{
float x = (y - p.y)/m + p.x;
return CGPointMake(x,y);
}
CGPoint pointOnLineWithX(CGPoint p, float m, float x)
{
float y = m*(x - p.x) + p.y;
return CGPointMake(x, y);
}
這已經長在這裏討論,請參閱 http://stackoverflow.com/questions/217578/point-in-polygon-aka-hit-test –
啊,很近! – TheOne