我有一組X和Y點建立一個形狀,我需要知道一個對象是否在它內部或它是什麼計算?計算對象是否在一組座標中?
X和Y COORDS例如:
522.56055 2389.885
544.96 2386.3406
554.18616 2369.2385
535.21814 2351.396
497.5552 2355.8396
我不是數學真的很好:(,所以我希望得到一些支持,以瞭解它是如何做的東西我迄今爲止
例但似乎不很可靠:
private boolean isInsideShape(Zone verifyZone, Position object)
{
int corners = verifyZone.getCorners();
float[] xCoords = verifyZone.getxCoordinates();
float[] yCoords = verifyZone.getyCoordinates();
float x = object.getX();
float y = object.getY();
float z = object.getZ();
int i, j = corners - 1;
boolean inside = false;
for(i = 0; i < corners; i++)
{
if(yCoords[i] < y && yCoords[j] >= y || yCoords[j] < y && yCoords[i] >= y)
if(xCoords[i] + (y - yCoords[i])/(yCoords[j] - yCoords[i]) * (xCoords[j] - xCoords[i]) < x)
inside = !inside;
j = i;
}
return inside;
}
我已經更新了這個問題與我有我的例子是通過閱讀理解數學/地理學很不理想通過實踐代碼我更容易理解;( – Prix 2011-03-03 02:07:12
@Prix,我爲你添加了代碼示例。 – 2011-03-03 07:55:57
感謝您抽出寶貴的時間與我所做的相比,這種方式讓人難以置信,非常感謝您的幫助。 – Prix 2011-03-03 10:10:26