Frage zur Implementierung von Bezierkurven?

Ich habe einige Tutorials für Bezierkurven wie diese gelesenhttp: //www.codeproject.com/KB/recipes/BezirCurves.asp.

Die Grundidee zum Erstellen einer Bezierkurve besteht darin, einige Kontrollpunkte zu verwenden und zu entscheiden, wie viele neue Punkte erstellt werden müssen. Und dann interpoliere diese neuen Punkte.

Hier ist die Frage:

Angenommen, ich habe 1000 Punkte und möchte 2000 Punkte mehr interpolieren. Die Anzahl der Kontrollpunkte, die ich verwenden möchte, ist 5. Der Parameter t liegt im Bereich von [0, 1].

Gibt Punkte P0, P1, P2, P3, P4, P5, P6, ... P1000. Ich kann P0-P4 verwenden, um neue Punkte zu generieren. Wie geht es dann weiter? benutze P5-P9 um neue Punkte zu generieren ??? Ich kann sofort sehen, dass es eine plötzliche Transformation zwischen P4 und P5 gibt.

Wie kann ich dieses Problem lösen?

Vielen Dan

///////////////////////////////////////////////// //// Hallo Stargazer712,

Ich verstehe Ihre Kommentare, bis die Implementierungsmethode erreicht ist.

ngenommen, wir haben die folgenden Punkt

A1->A2->A3->A4->A5->A6->A7->A8 initial points

Sie sagten, dass wir einen neuen Punkt in der Mitte jedes anderen Paares hinzufügen müssen.

Meine Frage ist, in welcher Reihenfolge der neue Punkt liegt?

Verwenden Sie diese Anmerkung (A1 + A3) / 2 == A12

Jetzt erzeugte neue Punkte sind

A13 A24 A35 A46 A57 A68 (this is what you mean "every other pair"?

Wo soll ich diese Punkte in die ursprüngliche Liste einfügen?

Die Kontur, an der ich arbeite, wird aus dem Binärbild extrahiert. Die erzeugte Kontur hat eine Zick-Zack-Form. Nachdem ich diese glatte Methode angewendet habe, verbessert sich die Form nicht zu sehr. Ich denke, der Hauptgrund ist, dass die Nachbarn nahe beieinander sind und die Interpolation nicht so nützlich macht.

Vielen Dan

///////////////////////////////////////////////// ///

Antworten auf die Frage(2)

Ihre Antwort auf die Frage