Hyperbezier-Kurven: Die mathematische Schönheit einer neuen Kurvenfamilie
The mathematical beauty of hyperbezier curves
Raph Levien stellt eine neue Kurvenfamilie vor, die kubische Bézier-Kurven in der interaktiven 2D-Grafik ablösen könnte. Die Hyperbezier-Kurven basieren auf der Cesàro-Gleichung und kombinieren glatte Krümmungsvariationen mit Bereichen hoher Spannung. Sie approximieren Bézier-Kurven gut, enthalten aber auch exakte analytische Kurven wie Euler-Spiralen und Kreisbögen. Zudem eignen sie sich für Superellipsen, Hyperbeln und Elastica. Die Mathematik ist elegant integrierbar, und die Kurven könnten Splines mit G2-Stetigkeit ermöglichen. Levien diskutiert Eigenschaften, Grenzen und zukünftige Arbeiten wie Kurvenanpassung und Pen-Tracking.
Die Hyperbezier-Kurve ist eine Art Fusion zwischen einer Hyperbel und einer Bézier-Kurve.
- momojo
Ich liebe Bézier-Kurven. Im Community College war es das erste Mal, dass ich auf ein Thema stieß, das mich dazu brachte, selbst weiterforschen zu wollen. Eine meiner Kern-Erinnerungen ist, wie ich mehrere Nächte lang, während der Rest des Hauses schlief, an meinem MacBook Pro von 2015 herumwerkelte, hakeligen p5.js-Code schrieb und immer wieder die Browser-Seite aktualisierte, bis ich plötzlich sah, wie echte, wunderschöne Kurven aus meinen Kontrollpunkten erblühten.
Ich habe gerade einige alte Quellen ausgegraben[0], und ich kann nicht fassen, dass dieser Beitrag fast ein Jahrzehnt alt ist. Seine Erklärungen und Animationen waren meilenweit besser als jede andere Ressource, die ich damals über die Google-Suche finden konnte.
- dlg
„Polynomiale Spiralen, oder Spiro-Kurven, das Thema meiner Doktorarbeit, erreichen dieses Ziel nicht.“
War deine Doktorarbeit nicht über angriffsresistente Vertrauensmetriken? Zumindest erinnere ich mich, sie gelesen zu haben.
- dahart
Also, Raph, wie zeichnest du diese Dinger? Ich bin mir nicht ganz sicher, wo ich anfangen würde, wenn ich eine Gleichung für die Krümmung oder den Tangentenwinkel (nehme ich an?) hätte. Der Pen-Tool-Link erwähnt „Auto-Punkte“, was den Eindruck erweckt, dass es eine Art Bézier-Unterteilung mit einigen Einschränkungen ist – stimmt das? Und dein Artikel erwähnt, dass du seitdem einige Dinge in der Mathematik korrigiert hast – ist das also etwas anders als das Pen-Tool, das keine Auto-Punkte verwendet?
Beim Spielen mit deiner Demo sehe ich, dass die Kurve in bestimmten Konfigurationen ihre Form sperrt und sich nicht mehr bewegt, selbst wenn ich einen der Kontrollpunkte herumziehe. Ist das ein vorübergehendes oder numerisches Stabilitätsproblem, oder ist das eine Eigenschaft von Hyperbézier-Kurven? Zum Beispiel, wenn ich die Kontrollpunkte in einem Quadrat anordne, mit P0 unten links, C1 unten rechts, C2 oben links, P3 oben rechts, und dann C1 nach rechts ziehe, sperrt sich die Form schnell. Nach Augenmaß passiert das vielleicht, wenn die Länge von P0C1 etwa das 1,5-fache der Länge von C2P3 beträgt? Wenn ich C1 weiter nach rechts und oben/unten bewege, gibt es einen riesigen Bereich, in dem das Bewegen von C1 die Form der Kurve nicht beeinflusst.
Ich war auch etwas neugierig auf die P/C-Benennung – ist das eine Hermite-ähnliche Idee, bei der P[03] Punkte und C[12] ähnlich wie Tangentenvektoren sind? Warum nicht P[0123] verwenden?
Wahrscheinlich ist eine wirklich offensichtliche Sache erwähnenswert – Bézier-Kurven sind in der Tat sehr vielseitig, aber man muss sagen, dass einer der Gründe, warum sie so beliebt sind, ist, dass die Mathematik so einfach ist, oder? Sie lassen sich in lineare Schritte zerlegen, mit ganzzahligen Exponenten und ein paar Multiplikationen nur deiner Par…
- krtkush
Verwandt: Letztes Jahr hatte ich das Vergnügen, mit Bézier-Kurven zu arbeiten, um eine sehr spezifische Benutzeroberfläche für eine App zu erstellen, an der ich arbeitete.
Ich habe eine Reihe von Beiträgen darüber geschrieben, wie ich die UI erreicht habe, hauptsächlich um den Prozess meinem zukünftigen Ich zu erklären[0].
Als Mobile-Entwickler hat es so viel Spaß gemacht, etwas anderes zu tun, als eine CRUD-App zu bauen.
[0] https://www.krtkush.com/computer-graphics-basics-with-compos...
- dcrazy
Beim Spielen mit dem Beispiel fühlen sich die Kontrollpunkte nicht intuitiver an als bei traditionellen kubischen Bézier-Kurven. Sie zeigen immer noch lästiges Verhalten in der Nähe der Endpunkte, neigen aber nicht dazu, zu „explodieren“ wie traditionelle Kubik.
Ich finde es merkwürdig, dass der Autor keinen Versuch unternimmt, seine Lösung mit anderen Splines wie B-Splines oder Catmull-Rom-Splines zu vergleichen, angesichts ihrer Beliebtheit in Computergrafik und CAD.