Тест точки внутри многоугольника в 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;
и в Android не существует AWT, поэтому я не могу использовать.
Итак, есть ли класс, похожий наPath2D
что былоcontains
метод? или я должен рассчитывать сам?
Вот как я это сделал в JavaPath2D
:
private void ConstructPolygon(Vector<Point2D> 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);
}