Ich versuche, einen Algorithmus zu finden, um eine glatte Kurve zu zeichnen, die durch n Punkte in Java verläuft.Linkpunkte mit einer glatten Kurve
Ich lese viel über das Thema, aber ich finde nur Beispiele mit 3 oder 4 Punkten. Ich verstehe nicht, wie ich den Prozess mit mehr Punkten verallgemeinern soll.
Zum Beispiel fand ich that answer, die zeigt, wie man eine Bezier-Kurve mit 3 Punkten macht. Aber wenn ich den Vorgang mit den 3 nächsten Punkten wiederhole, werden die 2 Kurven nicht glatt zusammenlaufen.
Ich fand auch this interesting pdf, die im Detail den Prozess beschreibt. Der Teil, an dem ich interessiert bin, ist das 5. Kapitel über Interpolation durch kubische Splines. Es erklärt, wie man erreicht, was ich will, aber für 6 Punkte. Es gibt keine Verallgemeinerung für n Punkte.
Wenn Sie einen einfacheren Ansatz sehen, würde ich es gerne nehmen. Ich will nur keine Lagrange-Interpolation. Wie in der verknüpften pdf gezeigt, gibt es nicht gute Ergebnisse ...
vorbei (dh in der Nähe) oder durchgehen (dh streng, direkt durch die Punkte)? Wie auch immer, schau hier rein: https://en.wikipedia.org/wiki/Cubic_Hermite_spline –
Passing through (sorry, nicht meine Muttersprache). Danke für den Link. Sieht immer noch nicht so einfach aus, wie ich es erwartet hatte. Ich werde mehr Zeit brauchen, um mich an all dem zu beteiligen. – Sharcoux
verbinden Sie alle Punkte mit Linien. Finde an jedem Eckpunkt den mittleren Winkel und verwende ihn als Tangentenrichtung. Verwenden Sie für die beiden Kantentangenten die Akkordrichtungen selbst. Sollte einfach genug sein. Jedes Segment wird durch seine zwei Kantenpunkte und zwei Tangentenrichtungen definiert. –