Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jens01,
17. Mai 2016
Eigentlich ist das ganz einfach.
Wenn ich richtig erinnere:
Du nimmst Deine Punktwolke verbindest 3 Punkte, schlägst einen Kreis um die Punkte, so dass alle Punkte auf dem Kreis liegen und überprüfst, dass sonst kein anderer Punkt innerhalb des Kreises liegt.
Von der Taktik her, musst Du halt so vorgehen, dass Du mit den 2 Punkten beginnst, die am dichtesten zusammen liegen. Von den 2...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jens01,
12. Mai 2016
Hmm, hatte ich anders in Erinnerung. Wieso habe ich das denn noch mal neu gemacht? Wahrscheinlich, weil der Code so undurchsichtig war....
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jens01,
12. Mai 2016
Sooo, eins noch.
Darüber habe ich noch mal nachgedacht. Mit dem Delaunay lassen sich aber auch Volumen zerlegen. Man sollte beliebige Volumen in Pyramiden aufteilen können.
Im 2d prüft man, ob ein Punkt im Kreis liegt. Im 3d müßte man prüfen, ob ein Punkt in einer aufgespannten Kugel liegt.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jens01,
12. Mai 2016
Das ist bei meinem Algo auch egal. Er benötigt aber die Außenkontur, damit nicht Punkte verbunden werden, die nicht zusammen gehören.
Bei dem Delaunay von Bourke und vielen anderen, hatte ich immer das Problem, dass da immer nur Linien produziert werden, was zum Zeichnen ausreichend ist, aber für die Weiterverarbeitung in einem Mesh nicht. Dazu braucht man dann richtige Dreiecke.
Ich habe mir...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jens01,
11. Mai 2016
Mein Programm ist eine reine Triangulation. Dazu benötigt man mehr als 3 Punkte, sonst ist es ja schon ein Dreieck. Alles andere muss vor der Nutzung berücksichtigt werden.
Ich war mir bei Deiner verlinkten Software nicht so sicher, ob das die beste Lösung für eine Triangulation ist.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jens01,
11. Mai 2016
Hier jetzt mein Test für eine Delaunay-Triangulation.
Das Ding ist nur ein Test, den ich zur Entwicklung genutzt habe.
Man benötigt die Aussenkontur des Polygons und wirft Punkte rein. Die Punkte werden dann zu Dreiecken trianguliert. Wenn Löcher im Polygon sind, werden die entsprechenden Dreiecke einfach rausgelöscht.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jens01,
11. Mai 2016
Ich lade das Programm gleich noch hoch, es gibt da kleine Probleme bei mir.
Die verlinkte Triangulation ist aber keine Delaunay-Triangulation, oder? Da könnte das Problem auch liegen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jens01,
11. Mai 2016
Hier ist mein Testprogramm
Moment, geht nicht..
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jens01,
10. Mai 2016
Ist das jetzt nicht Dein Ansatz?
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Jens01,
10. Mai 2016
Bist Du sicher, ob in Counterclockwise die Berechnung richtig ist?
PaulBourke hat das auf dieser Seite gemacht. Ich weiss nicht, ob Du die Formel optimiert hast, jedenfalls multipliziert er dort erst und subt dann.
Clockwise = Summe(Xi*Yi+1 - Xi+1*Yi) < 0
Edit:
Die Formel drüber könnte Deine sein. Die ist aber auch etwas anders, oder?