Bezierkurven, Stützstellen |
10.08.2006, 14:21 | zoni0815 | Auf diesen Beitrag antworten » |
Bezierkurven, Stützstellen 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 |
||
10.08.2006, 15:19 | 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... |
||
10.08.2006, 16:43 | zoni0815 | Auf diesen Beitrag antworten » |
RE: Bezierkurven, Stützstellen Leider ist so ne Bezierkurve nicht symmetrisch, Beispiel: ![]() 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... |
||
10.08.2006, 17:10 | 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 |
||
10.08.2006, 17:25 | 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 |
||
10.08.2006, 19:04 | 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 |
||
Anzeige | ||
|
||
14.08.2006, 09:47 | zoni0815 | Auf diesen Beitrag antworten » |
Danke Ben, habe versucht die Formel nach t umzustellen, bin jedoch kläglich gescheitert ... |
||
14.08.2006, 13:50 | 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 |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
Die Neuesten » |
|