Entwickler-Ecke
Open Source Projekte - konvexe Hülle einer Punktmenge
Fiete - Mi 03.02.16 15:22
Titel: konvexe Hülle einer Punktmenge
Das Programm ermittelt die konvexe Hülle einer Punktmenge(max.99 Punkte).
Die Lösung wird grafisch angezeigt.
Gruß Fiete
Fiete - Do 04.02.16 12:05
Moin Horst_H,
Es gab eine Aufgabe im BWInf 1987, nannte sich Goldgräberclaim.
Der Algorithmus sieht so aus: 1) suche linksuntersten Punkt
2) suche nächst äußersten Punkt, gibt es mehrere minimale Punkte, dann den am weitsten entfernten nehmen
Dies wird so lange durchgeführt, bis der Startpunkt erreicht ist.
Gruß Fiete
Horst_H - Fr 05.02.16 08:18
Hallo,
dann ist das wohl so etwas wie der
Jarvis-March-Algorithmus [
http://www.iti.fh-flensburg.de/lang/algorithmen/geo/jarvis.htm], dort sind noch andere Verfahren erklärt
Konvexe Hülle [
http://www.iti.fh-flensburg.de/lang/algorithmen/geo/convex.htm] (Dort wird auch beschrieben, das man den Winkel gar nicht so aufwändig berechnen muss, mit Wurzel und Divisionen)
Das Verfahren ist ja bei einer Punktewolke sehr schnell, da ja nur wenige ( h ) Punkte/Linien die konvexe Hülle bilden.Es wird also h*n mal gerechnet.
Ich fand besonders schön, wie die Punkte auf Aufstand erzeugt werden, indem getestest wird, ob an der Stelle auf dem Bild schon ein roter Punkt des vorherigen Kreises um einen Punkt ist.So braucht man keinen Speicher anlegen, um dafür zu sorgen.
Zum Beipiel indem man ein zweidimensionales Feld
Delphi-Quelltext
1: 2:
| var nutzbarePunkte: array[0..Breite Div Radius,0..Hoehe div Radius] of byte; |
anlegt und freie Punkte daraus wählt und mit Radius hochskaliert.Aber das sieht dann wieder zu gerastert aus.Man könnte auch Raster aus Sechsecken machen.Ich schweife ab...
Gruß Horst
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!