Bezierkurven, Stützstellen

Neue Frage »

zoni0815 Auf diesen Beitrag antworten »
Bezierkurven, Stützstellen
Hallo,
ich habe folgendes Proplem:

ich möchte in einem Grafikprogramm eine (kubische) Bezierkurve darstellen, die Methode dafür erwartet 4 Parameter: Startpunkt, EndPunkt und zwei Stutzpunkte. Startpunkt und Endpunkt sind bekannt, sowie ein Punkt duch den diese Kurve verlaufen soll. Benötigt werden jetzt noch die zwei Stützpunkte.
Gibt es eine Möglichkeit diese zu berechnen?

Grüsze
Gust Auf diesen Beitrag antworten »
RE: Bezierkurven, Stützstellen
Ist so eine Bezierkurve nicht symmetrisch, so dass man den zweiten Stützpunkt durch Spiegelung rausbekäme. Nicht dass ich furchtbar viel Ahnung hätte, ist nur so eine Idee...
zoni0815 Auf diesen Beitrag antworten »
RE: Bezierkurven, Stützstellen
Leider ist so ne Bezierkurve nicht symmetrisch,
Beispiel: http://www.id.unizh.ch/publications/ps/bezier2.gif
Unter bestimmten voraussetzungen, z.Bsp Stützpunkte liegen in einer Ebene und/oder haben den gleichen Abstand von Start/End-Punkt würde es ja die Zahl der unbekannten schon mal reduzieren...
Ben Sisko Auf diesen Beitrag antworten »
RE: Bezierkurven, Stützstellen
Habe nicht wirklich Ahnung von Bezierkurven, nur kurz den wiki-Artikel überflogen.

Aber: Ist es nicht so, dass eine kubische Bezierkurve nur durch 4 Punkte eindeutig festgelegt ist (jetzt mal unabhängig davon, ob es diese Stützpunkte oder Punkte auf der Kurve selbst sind)?
Dann wäre deine Kurve mit nur einem gegebenen Punkt auf der Kurve nicht eindeutig festgelegt. Willst du eine Schar von Kurven berechnen?

Gruß vom Ben
zoni0815 Auf diesen Beitrag antworten »
RE: Bezierkurven, Stützstellen
Genau,

legt man jedoch fest, daß (siehe Bild oben) Pkt 1 die gleich x-Koordinate wie pkt 0 besitzt und Pkt 2 die gleiche x- koordinate wie Pkt 3 und weiterhi Pkt 1 und 2 die gleiche y-koordinate, ist doch nur genau diese y-koordinate, die letzte unbekannte
Ben Sisko Auf diesen Beitrag antworten »

Mit dieser Festlegung wird die Kurve eindeutig bestimmt.

Nun kannst du doch deinen Punkt (durch den die Kurve gehen soll) mit der Kurve gleichsetzen. Bei der x-Koordinate ist ja alles bekannt, damit kannst du also den Parameter t ausrechnen (ich beziehe mich auf die Definition bei wikipedia: http://de.wikipedia.org/wiki/Bezierkurve ) und mit diesem dann die y-Koordinate.

Dir muss aber bewusst sein, dass du mit deinen Annahmen eine bestimmte Kurve aus den möglichen (mit diesen Start- und Endpunkten und durch den gegebenen Punkt) ausgewählt hast!

Gruß vom Ben
 
 
zoni0815 Auf diesen Beitrag antworten »

Danke Ben,

habe versucht die Formel nach t umzustellen, bin jedoch kläglich gescheitert ...
yeti777 Auf diesen Beitrag antworten »

Hallo zoni!

Ich musste dieses Problem in grauer Vorzeit innerhalb der Software einer Werkzeugmaschinensteuerung lösen.

Gemäss den vorangegangenen Beiträgen ist das BEZIER-Polynom für die x-Koordinate, also x(t), 0<=t<=1, bestimmt. Gesucht ist der Wert des Parameters t im vorgegebenen Kurvenpunkt (x,y). Das bedeutet, du suchst die Nullstellen eines Polynoms 3. Grades. Die geschlossene Lösung für dieses Problem existiert, Stichwort CARDAN'sche Formel. Um diese Formel telquel anwenden zu können, müsstest du dein BEZIER-Polynom mit den BERNSTEIN-Polynomen als Basis in ein Polynom mit den Monomen als Basis {1,x,x^2,x^3} transformieren (Basistransformation im Vektorraum der Polynome 3. Grades).

Weil ich damals auch mit BEZIER-Polynomen höheren Grades arbeitete, habe ich nicht diesen Weg gewählt (ginge auch nicht mehr ab Grad 4!), sondern die Lösung numerisch bestimmt. Mit geeignet gewählten Startwerten und der REGULA FALSI kommt man in 1-3 Schritten ans Ziel, dh. auf hinreichende Genauigkeit von t0.

Gruss yeti
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »