Тест точки внутри многоугольника в Android
На днях я сделал класс в Java, чтобы вычислить, еслиpoint(X,Y)
находится внутри многоугольника. (X
а такжеY
являютсяdouble
, потому что будут гео-координаты).
Я знаю, что у Java есть классPolygon
, но я должен был использоватьPath2D
а такжеPoint2D
, так какPolygon
дон»я не могуdouble
с, только целые числа :(
После того, как я сделал многоугольник вPath2D
Я использовал метод (contains
Path2D
было это), и моя проблема была решена.
Но теперь я хочу импортировать в Android, и проблема здесь, потому чтоPath2D
необходимо импортировать:
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;
а в андроиде нетне может существовать, поэтому я не могут использовать.
Итак, есть ли класс, похожий наPath2D
что былоcontains
метод? или я должен рассчитывать сам?
Вот как я это сделал в Java:Path2D
private void ConstructPolygon(Vector coodinates)
{
this.polygon.moveTo(coodinates.get(0).getX(), coodinates.get(0).getY());
//System.out.println(coodinates.get(0).getX() + " " + coodinates.get(0).getY());
//System.out.println("asda");
for(int i = 1; i < this.num_points; i++)
{
//System.out.println(coodinates.get(i).getX() + " " + coodinates.get(i).getY());
this.polygon.lineTo(coodinates.get(i).getX(), coodinates.get(i).getY());
}
this.polygon.closePath();
}
public boolean InsideCity(Point2D punto)
{
return this.polygon.contains(punto);
}