Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Kontrollpunktberechnung bei quadratischen/kubischen Beziers
Gehe zu Seite 1, 2, 3, 4, 5, 6  Weiter
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Mathe-Forum -> Kontrollpunktberechnung bei quadratischen/kubischen Beziers
 
Autor Nachricht
sHo
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 05.06.2005
Beiträge: 28
Wohnort: Dresden

BeitragVerfasst am: 23 Jun 2005 - 10:01:47    Titel: Kontrollpunktberechnung bei quadratischen/kubischen Beziers

Jo'Grüzi !

Bin bei meiner Arbeit über Bezierkurven über zwei mir unvollständige Formeln gestoßen.
Beide berechnen anhand der Ankerpunkte (am Anfang und Ende der Kurve) und einem
bzw. zwei auf der Kurve aufliegenden Punkte den bzw. die Kontrollpunkte.

Erst einmal eine Crashkurs für quadratische Bezierberechnung. Eine Quadratische
Kurve berechnet sich durch die gemittelten Werte der 2 Ankerpunkte (Start-/Endpunkt
der Kurve) und des Kontrollpunktes. Jeder Punkt der Kurve ergibt sich in folgender Formel
so durch diese Punkte und den laufenden Parameter t E[0,1].
Code:
 LP = (1-t)^2 * SP + 2t * (1-t) * KP + t^2 * EP

Wobei LP der Punkt auf der Kurve, SP der Startpunkt, KP der Kontrollpunkt und EP der Endpunkt sind.
Die kubische Kurve berechnet sich mit einem Kontrollpunkt mehr in folgender Formel:
Code:
LP = SP * (1-t)^3 + KP1 * 3 * (1-t)^2 * t + KP2 * 3 * (1-t) * t^2 + EP * t^3


Soweit dazu, Ziel ist es jedoch nicht den Punkt auf der Kurve zu ermitteln sondern den Kontrollpunkt - wobei wir beim eigentlichen Problem sind.

Code:
 KP = (2 * LP) - 0.5 * (SP + EP)

Das ist die Formel für die Berechnung des Kontrollpunktes in einer quadratischen Bezierkurve.
Funktioniert soweit auch sehr gut, solang LP (der Punkt auf der Kurve) genau bei t = 0.5 steht.
Vielleicht etwas ungünstig ausgedrückt, deshalb mal eine kleine Veranschaulichung: [gelöscht]
Hier könnt Ihr die quadratische Kurve anhand Ihrer Ankerpunkte, des Kontrollpunktes und
des Punktes auf der Kurve bearbeiten, jedoch nur solange dieser auf t = 0.5 liegt. Die Position
des Punktes ist durch die untere Leiste veränderbar.

Im Grunde gilt das gleiche für die kubische Kurve. Unterschied ist nur, dass es 2 Kontrollpunkte und auch 2 Punkte auf der Kurve gibt. Formel:
Code:
 KP1 = -(10 * SP - 3 * EP - 8 * (3 * LP1 - LP2)) / 9

Code:
 KP2 = (3 * SP - 10 * EP - 8 * LP1 + 24 * LP2) / 9

Hierbei klappt die Berechnung beider Kontrollpunkte auh nur wenn LP1 bei t=0.25 und LP2 bei t=0.75 steht.


Nun zu meiner Frage - oder eher Bitte : Wie kann ich unter einbeziehung des Parameters t
in obigen genannter Formel den Kontrollpunkt auch bei anderen Werten von t berechnen?

Bin auf eure Antworten sehr gespannt!

MfG sHo

PS.: Fairerweise sollte gesagt sein, ich nicht die große Leuchte in Mathe bin, also bitte langsam sprechen. Wink


Zuletzt bearbeitet von sHo am 18 Okt 2013 - 11:58:01, insgesamt einmal bearbeitet
sHo
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 05.06.2005
Beiträge: 28
Wohnort: Dresden

BeitragVerfasst am: 23 Jun 2005 - 18:39:00    Titel:

Weiß denn niemand einen Rat ?

Vielleicht kennt jemand den Ursprung der Formeln oder einen Tipp ?

MfG sHo
the4
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 27.05.2005
Beiträge: 15

BeitragVerfasst am: 24 Jun 2005 - 10:04:13    Titel: Allgemein zu B-Splines

Hi,

ich habe keine lust mich durch dein gesabbel durchzuarbeiten , aber ganz allgemein:

wenn man eine B-Spline Basis waehlt und und Kontrollpunkte, so ist dadurch eindeutig ein Spline gegeben. Und es gibt berechnungsvorschriften wie man an bestimmte Punkte zu einem bestimmten Parameter kommt. (Vorteil dieser Polynombasis, die Basisfunktionen haben kleinen traeger nicht wie die Monombasis)

Wenn ich dein Problem richtig verstanden habe willst du eine B-Spline Interpolation machen. Oder genauer die Formel der B-Spline Interpolation herleiten. Dies geht prinzipiell so, dass man die oben beschriebenen Vorschriften von hinten nach vorne ausrechnet. (nicht ganz so schwierig aber viel rechnerei) Und da es das schon 1000mal gibt wuerde ich mal nach kubischer/quad. B-Spline Interpolation googlen.

MfG 4
sHo
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 05.06.2005
Beiträge: 28
Wohnort: Dresden

BeitragVerfasst am: 24 Jun 2005 - 12:00:27    Titel:

Heya!

Zitat: "Wenn ich dein Problem richtig verstanden habe willst du eine B-Spline Interpolation machen." - google schon seit Tagen aber finde anscheinden nicht das richtige - B-Spline Interpolation bedeutet doch nicht viel mehr als die Kurve (oder besser die Punkte der Kurve) anhand der Anker- und Kontrollpunkte zu berechnen nicht wahr? Mein Anliegen ist jedoch die Kontrollpunkte anhand der Kurve zu berechnen. Mein Beispiel von oben sollte es an einem quadratischen Bezier veranschaulichen. Das Bsp. funktioniert auch soweit, leider aber nur wenn der Punkt auf der Kurve in der Mitte dieser sitzt (t=0.5). Bei der kubischen Kurve funktioniert es mit der anderen Formel (s.O.) auch, aber nur wenn der erste Punkt im 1/4 (t=0.25) und der zweite im 3/4 (t=0.75) der Kurve liegt. Wenn man den Parameter t - welcher mir ja gegeben ist - in obige Formeln einbauen könnte würde ich bei meiner Arbeit ein ganzes Stück vorran kommen - denn ich häng zZ. daran echt fest!

Danke aber für deine Antwort!

MfG sHo
sHo
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 05.06.2005
Beiträge: 28
Wohnort: Dresden

BeitragVerfasst am: 26 Jun 2005 - 19:48:29    Titel:

Scheint so als könnt ich das abschreiben was? Na wem noch was einfällt unten is noch Platz. Chiao
algebrafreak
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 28.10.2004
Beiträge: 4143
Wohnort: Passau

BeitragVerfasst am: 26 Jun 2005 - 20:10:23    Titel:

Bedenke: Leute, die auf deine Frage eine Antwort geben können wissen, was eine Bezier-Kurve ist. Denen brauchst Du die nicht beschreiben. Anstatt dessen solltest Du mehr Arbeit in die Beschreibung deines Problems aufwenden Smile

Zitat:
in obigen genannter Formel den Kontrollpunkt auch bei anderen


Den Kontrolpunkt gibt es ja nicht auf einer kubischen Bezierkurve. Formuliere bitte deine Aufgabenstellung präziser. Etwa

Gegeben ist: ...
Gesucht ist: ...

Z.B. Gegeben sind 3 Kontrolpunkte (zwei Anker und noch einer) und ein Punkt durch den die Kurve laufen soll. Bestimme den dritten KP, wenn es geht.

Wenn ich Zeit finde, mache ich was dann. So sehe ich nicht, was zu tun ist.
sHo
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 05.06.2005
Beiträge: 28
Wohnort: Dresden

BeitragVerfasst am: 27 Jun 2005 - 10:43:04    Titel:

Hi Algebrafreak!

Hast vollkommen Recht! Bin bei der Beschreibung des wesentlichen wohl bisschen vom Thema abgewichen. Ich werd versuchen es deutlicher zu Bescheiben.

Gegeben sind mir in der quadratischen Kurve die beiden Ankerpunkte A,C am jeweiligen Anfang und Ende der Kurve, ein Punkt auf der Kurve D (bei T) und dadurch auch T. Berechnet werden soll der Kontrollpunkt B.

Ich habe schon eine Formel, die mir den Kontrollpunkt B schon berechnet, leider aber nur solange T = 0.5 und der punkt auf der Kurve D bei T = 0.5 steht. So ist es auch in diesem Beispiel [gelöscht] (Flash) veranschaulicht.
Darin wird beim verschieben des Punktes auf der Kurve D der Kontrollpunkt und die Kurve korrekt berechnet, solang man T (unterer schieberegler) bei 0.5 belässt.

Hier die Formel zur quadratischen Kurve :
Code:
B = (2 * D) - 0.5 * (A + C)


Vielleicht hilft euch die Formel etwas - mir leider nicht.



Genauso versuche ich diese Problematik bei einer kubischen Kurve zu lösen. Dabei sind mir die beiden Ankerpunkte A,D am jeweiligen Anfang und Ende der Kurve, zwei punkte auf der Kurve E,F und die zu den Punkten gehörenden T-Parameter TE und TF gegeben. Berechnet werden sollen jetzt aber die beiden Kontrollpunkte B und C.

Formel hab ich dazu auch schon, nur leider wieder mit dem Problem, dass diese nur bei TE = 0.25 und TF = 0.75 korrekt funktioniert.

Hier die Formeln zur kubischen Kurve:
Code:

B = -(10 * A - 3 * D - 8 * (3 * E - F)) / 9
C =  (3 * A - 10 * D - 8 * E + 24 * F) / 9


Hoffe das jetzt etwas verständlicher ausgedrückt zu haben ..

Freu mich schon auf deine Antwort!

MfG sHo


Zuletzt bearbeitet von sHo am 18 Okt 2013 - 11:58:14, insgesamt einmal bearbeitet
algebrafreak
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 28.10.2004
Beiträge: 4143
Wohnort: Passau

BeitragVerfasst am: 27 Jun 2005 - 12:45:06    Titel:

Deine Kurve wird durch die Gleichung

x = x_0(1-u)^2 + x_1 2u(1-u) + x_2 u^2
y = y_0(1-u)^2 + y_1 2u(1-u) + y_2 u^2

beschrieben. Dabei sind x_0,y_0,x_3 und y_3 bekannt. Gesucht ist x_1 und y_1. Da die Kurve in x_1 und y_1 in beiden Anteilen linear ist, reicht es

x_1 = (x - x_0(1-u)^2 - x_2 u^2)/(2u(1-u))
y_1 = (y - y_0(1-u)^2 - y_2 u^2)/(2u(1-u))

zu berechnen. Dazu fehlt offensichtlich ein beliebiger (von den beiden Ankern verschiedener) Punkt auf der Kurve und der entsprechende Wert von u. Dann ist der Kontrollpunkt immer vorhanden.

Für u = 1/2 gibt es anscheinend für den "Mittelpunkt" der Kurve eine Formel, sodaß man beide fehlenden Werte einsetzen kann. Für den allgemeinen Ansatz reicht es nicht aus die 2 Ankerpunkte zu wissen. Bei einer kubischen Kurve ist es analog.
sHo
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 05.06.2005
Beiträge: 28
Wohnort: Dresden

BeitragVerfasst am: 27 Jun 2005 - 14:23:25    Titel:

Oh das schaut doch schon sehr vielversprechend aus!

Neben x_0, y_0 (bei mir A) und x_3, y_3 (bei mir C) ist auch noch x,y (bei mir D) und u (bei mir t) bekannt. Somit sollte es mit deiner Formel berechenbar sein.

Ich probiers gleich mal aus!

Kannst du mir bitte noch die Formel für die kubische Kurve aufschreiben?

Danke schonmal!

MfG sHo
sHo
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 05.06.2005
Beiträge: 28
Wohnort: Dresden

BeitragVerfasst am: 27 Jun 2005 - 14:52:42    Titel:

Klappt super deine Formel !

Hab das Flash-Beispiel damit aktualisiert und jetzt funktionierts.

MfG sHo
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Mathe-Forum -> Kontrollpunktberechnung bei quadratischen/kubischen Beziers
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2, 3, 4, 5, 6  Weiter
Seite 1 von 6

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum