Niedawno zrobiłem zajęcia w języku Java, aby obliczyć, czy point(X,Y)
jest wewnątrz wielokąta. (X
i Y
są double
, ponieważ będą współrzędnymi geograficznymi).Test punktu wewnątrz wielokąta w Androidzie
wiem, że Java ma klasę Polygon
, ale musiałem użyć Path2D
i Point2D
, ponieważ Polygon
nie pozwalają double
„s, tylko liczby całkowite :(
Raz mam wielokąta odbywa się w Path2D
, ja stosowane metody contains
(Path2D
miał go), a problem został rozwiązany
Ale teraz chcę zaimportować do Androida, a problem jest tutaj, bo Path2D
musi importować.
i na Androidzie nie istnieje, więc nie mogę z niego korzystać.
Czy istnieje zatem klasa podobna do Path2D
, która miała metodę contains
? lub muszę sam obliczyć?
Oto jak to zrobiłem w Javie przy użyciu Path2D
:
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);
}
Może mogłeś tylko pomnożone wszystkie 'wartości double' przez 10000 i używał ich z klasą Java 'Polygon'? –