У меня есть набор точек X и Y, который создает фигуру, и мне нужно знать, находится ли внутри него объект или нет, что такое его вычисление?
ПримерыX и Y:
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;
}