Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.
... und diese Signatur kürzer!
- übersichtlicher
- logischer
- verständlicher
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 |
1.1) Ignorieren (1) .2) Haben nur den Zyklus 2→3→4→2, war unbekannt, also merken und Ende 2.1) Ignorieren (2) .2) Haben nur den Zyklus 1→3→4→1, war unbekannt, also merken und Ende 3.1) Ignorieren (3) .2) Haben nur den Zyklus 1→2→4→1, war unbekannt, also merken und Ende 4.1) Ignorieren (4) .2) Haben die Zyklen 2→3→4→2, 1→3→4→1, 1→2→4→1 und 1→3→2→1, wir kennen schon Zyklen dieser Liste! .3) Zyklen aus dieser Liste entfernen, restliche Zyklen darauf prüfen, ob sie irgendeinen Knoten dieser Zyklen enthalten -> JA: Entfernen (was in diesem Fall zutrifft) -> NEIN: Ist unbekannt, also merken und Ende 5) Kein weiterer Knoten verfügbar, also FIN |
Sorry, aber da kann ich nicht folgen. Bei dieser Methode fliegt grün sofort raus, aber dann auch blau oder pink, weil die ja G beide besitzen!?Wenn mehrere Mengen den gleichen Knoten haben, der genau zwei Kanten aufweist, nimmst du die Menge mit der kleinsten Mächtigkeit und verwirfst alle anderen. Sollten sie weitere, derartige Knoten einschließen, musst du die natürlich für zukünftige, ähnliche Überprüfungen ignorieren.
Damit allein kannst du Bild B schon wieder lösen.
Das habe ich nicht verstanden! Kannst du kürzere Sätze schreiben oder mal ein Beispiel machen?Allgemein lösen wirst du damit aber nicht können, wenn eine Fläche etwa nur von Vertices eingeschlossen wird, die alle mehr als zwei Kanten haben. Um das zu machen, könntest du die Vertices und deren Kanten, von denen du schon weißt, dass die zu einem Knoten gehören, komplett ignorieren und die Anzahl der Kanten der Vertices, mit denen jene verbunden waren, entsprechend reduzieren.
Sprich! Setzt du beim Graphen an oder beim Polygonnetz? Beides steht zur Verfügung - es gibt keine Kanten mehr die sich schneiden, dafür sorgt das Programm vorher.Persönlich würde ich das Problem ganz anders rangehen.
Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.
... und diese Signatur kürzer!
- übersichtlicher
- logischer
- verständlicher
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Checkmateing« (01.06.2016, 03:11)
Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.
... und diese Signatur kürzer!
- übersichtlicher
- logischer
- verständlicher
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »BlueCobold« (01.06.2016, 07:10)
Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.
... und diese Signatur kürzer!
- übersichtlicher
- logischer
- verständlicher
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public ArrayList<Polygon> findMinPolygons(Node polygonNet) { open = new ArrayList<>(); closed = new ArrayList<>(); polygons = new ArrayList<>(); open.add(polygonNet); Node current = polygonNet; while(!open.isEmpty()) { current = open.get(0); open.remove(0); closed.add(current); if(current.parents.size() >= 2) { polygons.add(polygonFound(current)); } expandNode(current); } return polygons; } |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Werbeanzeige