Polygone verbinden

Status
Nicht offen für weitere Antworten.

Sengha

Mitglied
Ich suche eine möglichst einfache Lösung um zwei sich überschneidende Polygone (java.awt.Polygon) miteinander zu verbinden, so daß dabei ein neues Polygon entsteht.
 

Landei

Top Contributor
Liegen zwei Punkte des ersten Polygons innerhalb des zweiten, fallen sie weg, liegen sie außerhalb, bleiben sie, und liegt einer innen und einer außen, musst du den Schnittpunkt mit dem ersten Polygon berechnen, die "innere" Hälfte wegwerfen und nur die äußere Hälfte behalten. Schwierig werden die Grenzfälle, wenn zwei Linien genau aufeinanderliegen, wenn sich ein Polygon selbst überschneidet usw.

java.awt.Polygon hat schon eine Funktion zum testen, ob ein Punkt "drinliegt".
 

byte

Top Contributor
Die Sache ist nicht ganz so trivial, denn die Reihenfolge der Punkte in den Polygonen ist entscheidend.

Ich würde aus den Seitenlinien der Polygone die Schnittpunkte berechnen und daraus die Seitenlinien des neuen Polygons bestimmen. Daraus lässt sich dann leicht das neue Polygon konstruieren.
 

byte

Top Contributor
Definiere geordnet... die Punkte im Polygon sind in der Reihenfolge geordnet, in der Du sie hinzufügst. Willst Du also z.B. ein Rechteck haben, dann musst du die 4 Punkte auch in der richtigen Reihenfolge hinzufügen, also entweder clockwise oder anti-clockwise. Falsche Reihenfolge = kein Rechteck.

Die Reihenfolge der Punkte ist bei Polygonen also maßgeblich dafür, was für eine geometrische Fläche das Polygon beschreibt. Deswegen ist es (wie ich schon sagte) einfacher mit Linien zu rechnen als mit den Punkten.
 
Zuletzt bearbeitet:

Sengha

Mitglied
kennt jemand eine fertige bibliothek, die sowas kann? ich brauche boolsche operationen, wie "vereinigung" und "differenz"...
 

Landei

Top Contributor
Du weißt aber schon, dass das "Addieren" oder "Subtrahieren" nicht immer ein Polygon liefert? Wenn man zwei Polygone addiert, die sich nicht berühren, hat man... Überraschung... zwei Polygone. Oder zwei Polygone addieren sich so, dass "Löcher" entstehen, etwa ein Halbmond linksrum und einer rechtsrum (und sowas ist in java.awt.Polygon nicht vorgesehen, soweit ich weiß). Subtrahieren ist noch viel schlimmer: Hast du einen "Stern" und stanzt etwas mehr oder weniger rundes aus, bleiben u.U. nur noch die Spitzen der Zacken übrig, und das können beliebig viele sein...
 

Sengha

Mitglied
das ist mir schon klar und eigentlich ist es auch egal wenn mehrere neue polygon entstehen... man findet nur leider nicht viel dazu
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Canvas oder Polygone? AWT, Swing, JavaFX & SWT 3
M polygone wird von selbst gezeichnet AWT, Swing, JavaFX & SWT 7
T Polygone und deren Löcher AWT, Swing, JavaFX & SWT 6
E JScrollPane mit JPanel verbinden AWT, Swing, JavaFX & SWT 1
K JavaFX Button verbinden AWT, Swing, JavaFX & SWT 6
D Zwei getrennte Java Klassen verbinden. Wie ? AWT, Swing, JavaFX & SWT 2
T Swing Tetraeder - mehrere Punkte verbinden? - Ansätze gesucht AWT, Swing, JavaFX & SWT 2
Soloeco Graphics2D - Verbinden zweier Punkte AWT, Swing, JavaFX & SWT 6
L JavaFX TableView mit XYChart verbinden AWT, Swing, JavaFX & SWT 3
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
D JavaFX @FXML Annotation mit Klassen und Instanzen verbinden? AWT, Swing, JavaFX & SWT 5
A JavaFX Eine Task mit einer ProgressBar verbinden AWT, Swing, JavaFX & SWT 0
T JTree mit Cloud verbinden AWT, Swing, JavaFX & SWT 0
T Panels mit Button verbinden AWT, Swing, JavaFX & SWT 3
E JList /DefaultListModel mit Datenbank verbinden AWT, Swing, JavaFX & SWT 10
E 2D-Grafik Div. Punkte zur Sinuskurve verbinden AWT, Swing, JavaFX & SWT 25
P JFrames verbinden AWT, Swing, JavaFX & SWT 9
K Zeile verbinden AWT, Swing, JavaFX & SWT 2
B unsortierte Punkte verbinden AWT, Swing, JavaFX & SWT 8
N Swing JTable: Zellen verbinden AWT, Swing, JavaFX & SWT 11
C GridBagLayout Zellen verbinden AWT, Swing, JavaFX & SWT 13
K GUI und Hauptklasse verbinden AWT, Swing, JavaFX & SWT 2
L Punkte verbinden AWT, Swing, JavaFX & SWT 3
M Labels in ScrollPane mit Linie verbinden AWT, Swing, JavaFX & SWT 2
P [gelöst] Verschiebbare Komponenten mit Linien verbinden AWT, Swing, JavaFX & SWT 2
G 2x Graphics in einer paint() miteinander verbinden AWT, Swing, JavaFX & SWT 11
G ScrollBar mit Frame verbinden? AWT, Swing, JavaFX & SWT 8
D JSlider und JMF player verbinden AWT, Swing, JavaFX & SWT 6
L Mehrere Scrollbar objekte miteinander verbinden AWT, Swing, JavaFX & SWT 3
S Progress Monitor mit einer Methode() verbinden AWT, Swing, JavaFX & SWT 4
G Rowspan (Zellen verbinden) in JTable? AWT, Swing, JavaFX & SWT 3
M Problem bei Verbinden v. jTable, ScrollPane u. JLabel AWT, Swing, JavaFX & SWT 5
W JTable Zellen verbinden AWT, Swing, JavaFX & SWT 2
M JButtons mit Linie verbinden AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben