Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Bezier-Kurven berechnen

  Alt 26. Okt 2006, 09:01
Um mal auf die eigentliche Frage einzugehen: WIr haben (ebefalls in unserer aktuellen CG Vorlesung ) auch nicht über optimale Schrittweiten gesprochen. Jedoch kam mir grad eine Idee, wie man u.U. etwas brauchbares herausbekommt.

Nimm die Pixelkoordinaten deiner Stützpunkte, und berechne die Gesamtlänge L des Polygonzugs. 1/L könnte dann für das Segment eine durchaus brauchbare Lösung sein, zumindest aber ein Ausgangswert der sich an einer Näherung der tatsächlichen Länge orientiert. Genau Pixelabstand wird man jedoch nicht, bzw. nicht trivial oder gar performant hinbekommen, da die Punktverteilung bei gleichschrittigem Erhöhen von t nicht linear ist. Ums Strecken Zeichnen wirst also nicht herum kommen


Edit: Ich habe vorhin nochmal meinen Prof dazu befragt. Er gab bei o.g. Methode noch zu bedenken, dass das Vorgehen keineswegs optimal ist, und zwar dahingehend, dass auch wenn eine Teilstrecke der Kurve nicht stark gekrümmt ist, trotzdem mit hoher Auflösung die Punkte berechnet werden, obwohl für einen guten Bildeindruck weniger nötig wären. Auf der anderen Seite kann es noch passieren, dass zu starke Krümmungen zu kantig erscheinen, wobei das bei 1/L eher selten der Fall sein dürfte, da die Punkte damit schon sehr dicht werden.

Eine Möglichkeit der Optimierung wäre also nun, indem man ein Verfahren findet, dass die Krümmung der Kurve wiedergibt. U.U. lässt sich da mit numerischen Näherungsverfahren zur Ableitungsbildung was erreichen, aber konkrete Quellen habe ich da leider nicht parat. Zudem ist dann die Frage, ob es nicht performanter wäre, einfach ein paar Punkte zu viel zu zeichnen . (Je nach Anwendungsfall.)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat