Hi,
ich habe zwei Polygone, bestehend aus 4 rechtwinkligen Linien, also Rechtecke. Die beiden Polygone teilen sich eine Linie, sind also angrenzend.
Ich möchte nun bestimmen, ob die Vereinigung der beiden Polygone wieder rechteckig ist. Dafür erzeuge ich aus den Polygonen Areas, vereine diese und benutze die Methode isRectangular(). Leider funktioniert das ganze nicht wie gewünscht.
Hier ein Beispiel:
Polygon 1 und Polygon 3 grenzen horizontal aneinander. Da funktionierts. Polygon 1 und Polygon 2 grenzen vertikal aneinander. Da funktionierts nicht.
Habe ich einen Denkfehler oder warum funktioniert die Methode nicht wie gewünscht?
TIA byte
ich habe zwei Polygone, bestehend aus 4 rechtwinkligen Linien, also Rechtecke. Die beiden Polygone teilen sich eine Linie, sind also angrenzend.
Ich möchte nun bestimmen, ob die Vereinigung der beiden Polygone wieder rechteckig ist. Dafür erzeuge ich aus den Polygonen Areas, vereine diese und benutze die Methode isRectangular(). Leider funktioniert das ganze nicht wie gewünscht.
Hier ein Beispiel:
Java:
Polygon p1 = new Polygon();
p1.addPoint(0, 0);
p1.addPoint(10, 0);
p1.addPoint(10, 10);
p1.addPoint(0, 10);
Polygon p2 = new Polygon();
p2.addPoint(0, 10);
p2.addPoint(10, 10);
p2.addPoint(10, 20);
p2.addPoint(0, 20);
Polygon p3 = new Polygon();
p3.addPoint(10, 0);
p3.addPoint(20, 0);
p3.addPoint(20, 10);
p3.addPoint(10, 10);
Area a1, a2;
System.out.println("Polygon 1, Polygon 2:");
a1 = new Area(p1);
a2 = new Area(p2);
a1.add(a2);
System.out.println("singular = " + a1.isSingular()); // true
System.out.println("rectangular = " + a1.isRectangular()); // false
System.out.println("\nPolygon 1, Polygon 3:");
a1 = new Area(p1);
a2 = new Area(p3);
a1.add(a2);
System.out.println("singular = " + a1.isSingular()); // true
System.out.println("rectangular = " + a1.isRectangular()); // true
Polygon 1 und Polygon 3 grenzen horizontal aneinander. Da funktionierts. Polygon 1 und Polygon 2 grenzen vertikal aneinander. Da funktionierts nicht.
Habe ich einen Denkfehler oder warum funktioniert die Methode nicht wie gewünscht?
TIA byte