Laden...

Koordinaten eines Kurvenverlaufs speichern

Erstellt von chrisi29 vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.635 Views
C
chrisi29 Themenstarter:in
9 Beiträge seit 2013
vor 10 Jahren
Koordinaten eines Kurvenverlaufs speichern

Hallo liebe Community!

Seit einiger Zeit versuche ich nun schon ein Objekt zu animieren, so dass es auf einer zufällig generierten Kurve fährt.
Das ganze soll so aussehen:
Ich generiere einen Startpunkt(_StartPNTX, _StartPNTY) mit Random und einen Endpunkt(_EndPNTX, _EndPNTY) und einen Punkt(_ZwPNTX, _ZwPNTY) der zwischen den beiden Punkten liegt.

Mit der Graphics.DrawCurve() zeichne ich dann meine Kurve. Dies funktioniert auch einwandfrei.


Point point1 = new Point(_StartPNTX, _StartPNTY);
Point point2 = new Point(_ZwPNTX, _ZwPNTY);
Point point3 = new Point(_EndPNTX, _EndPNTY);
Point[] curvePoints = { point1, point2, point3 };

graphPath.AddCurve(curvePoints, 1.0F);
e.Graphics.DrawCurve(Pencil1, curvePoints, 1.0F);

e.Graphics.DrawCurve(Pencil1, curvePoints, 1.0F) gibt eine wunderschöne Kurve aus, soweit passt alles.

Nur möchte ich die Kurve ja nicht gezeichnet haben, sondern die Koordinaten der Kurve speichern.
Versucht habe ich es, wie man oben erkennt, die Koordinaten in einen GraphicPath zu speichern, jedoch speichert er dann nur sieben Koordinaten, warum auch immer. Genau hier stecke ich fest. Ich möchte alle Koordinaten speichern. Warum gerade diese sieben?

Diese Methode ist die die mir auf Anhieb eigefallen ist, und mir am einfachsten erschien.

Wenn jemand eine andere Idee hat, freue ich mich über weitere Vorschläge.

Schönen Abend noch!
Chris!

C
2.121 Beiträge seit 2010
vor 10 Jahren

Hier werden nur bestimmte Punkte gespeichert, sowie die Information dass durch diese eine Kurve gelegt werden soll.
"Alle" Koordinaten ist sowieso nicht die richtige Formulierung, wenn man Kommazahlen zulässt gibt es nämlich unendlich viele 😃

Ich würde mir die Formel suchen anhand der die Koordinaten für die Kurve berechnet werden und mir die dann selbst berechnen. Dann brauchst du nichts speichern sondern kannst immer die nächste Position berechnen.

771 Beiträge seit 2009
vor 10 Jahren

Hi chrisi29,

das Stichwort heißt Spline-Interpolation. Auf CodeProject oder hier im Forum solltest du einige Formeln dazu finden.