Frage

diese Seite , die die ausführlichsten Informationen über Catmull zu haben scheint -Rom Splines, scheint es, dass vier Punkte benötigt, um den Spline zu erstellen. Es ist jedoch nicht erwähnt, wie die Punkte p0 und p3 die Werte zwischen p1 und p2 beeinflussen.

Eine andere Frage, die ich habe, ist, wie würden Sie kontinuierlich Splines erstellen? Wäre es so einfach wie die Definition der Punkte p1, p2 mit p4 kontinuierlich, p5, indem p4 = p2 (das heißt, unter der Annahme, wir haben p0, p1, p2, p3, p4, p5, p6, ..., pN ).

Eine allgemeinere Frage ist, wie man Tangenten auf Catmull-Rom-Splines berechnen würde? Wäre es zwei Punkte auf dem Spline einbeziehen müssen nehmen (etwa bei 0,01, 0,011) und die Tangente immer auf Basis von Pythagoras, da die Positionskoordinaten dieser Eingangswert geben?

War es hilfreich?

Lösung

Werfen Sie einen Blick auf Gleichung 2 - es wird beschrieben, wie die Kontrollpunkte der Linie beeinflussen. Sie können zum Plotten Punkte entlang der Kurve von P0 P3 Punkte P1 und P2 gehen in die Gleichung zu sehen. Sie sehen auch, dass die Gleichung P1 gibt, wenn t == 0 und P2 wenn t == 1.

Dieses Beispiel Gleichung verallgemeinert werden. Wenn Sie Punkte R0 haben, R1, ... RN dann können Sie die Punkte zwischen RK plotten und RK + 1 durch Gleichung 2 mit P0 = RK - 1, P1 = RK, P2 = RK + 1 und P3 = RK + 2.

Sie können nicht von R0 plotten R1 oder von RN - 1 RN es sei denn, Sie zusätzliche Kontrollpunkte hinzufügen vertretend für R - 1 und RN + 1. Die allgemeine Idee ist, dass Sie, was auch immer Punkte, die Sie hinzufügen möchten, auf den Kopf und Schwanz einer Sequenz selbst alle Parameter zu geben, wählen können die Spline zu berechnen.

Sie können die Verbindung von zwei Keilen zusammen mit einem der Kontrollpunkte zwischen ihnen fallen. Angenommen, Sie haben R0, R1, ..., RN und S0, S1, ... SM sie in R0 verbunden werden können, R1, ..., RN - 1, S1, S2, ... SM.

zu der Tangente an jedem Punkt berechnen nimmt nur die Ableitung von Gleichung 2.

Andere Tipps

Wikipedia-Artikel geht in ein bisschen mehr Tiefe. Die allgemeine Form des Spline nimmt als Eingabe 2 Kontrollpunkt mit zugehörigen Tangentenvektoren. Zusätzliche Keilsegmente können dann hinzugefügt werden, vorgesehen, dass die Tangentenvektoren an den gemeinsamen Steuerpunkten gleich sind, die die Kontinuität C1 bewahrt.

In der spezifischen Catmull-Rom Form, der Tangentenvektor an Zwischenpunkten wird durch die Positionen von benachbarten Kontrollpunkt bestimmt. So eine C1 kontinuierliche Spline durch mehrere Punkte zu erzeugen, genügt es, den Satz von Steuerpunkten und die Tangentenvektoren an dem ersten und letzten Steuerpunkt zu liefern. Ich denke, das Standardverhalten ist P1 zu verwenden - P0 für den Tangentenvektor bei P0 und PN -. PN-1 bei PN

Nach dem Wikipedia-Artikel, die Tangente am Kontrollpunkt Pn zu berechnen, verwenden Sie diese Gleichung:

T(n) = (P(n - 1) + P(n + 1)) / 2

Das beantwortet auch Ihre erste Frage. Für einen Satz von Steuerpunkten 4, P1, P2, P3, P4, Werte zwischen P2 und P3 Interpolations-erfordert, dass alle Punkte 4 Steuerinformationen bilden. P2 und P3 sich die Endpunkte definieren, durch die das Interpolations-Segment passieren muss. P1 und P3 bestimmen das Interpolations-Segment an einem Punkt P2 den Tangentenvektor hat. P4 und P2 bestimmen, das Segment an einem Punkt P3 den Tangentenvektor hat. Die Tangentenvektoren an Kontrollpunkten P2 und P3 beeinflussen die Form des Interpolations-Segment zwischen ihnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top