5 Punkte von GN⁺ 2025-08-21 | 1 Kommentare | Auf WhatsApp teilen
  • Einführung in das Konzept, Objektbewegungen im 3D-Raum mit parametrischen Funktionen auszudrücken
  • Erläuterung des Prozesses, von Kreis, Spirale bis hin zu einer sphärischen Helix-Bahn schrittweise komplexere Pfade mathematisch zu konstruieren
  • Durch die Definition jeder Koordinatenachse (x, y, z) als Funktion der Zeit lassen sich vielfältige Bewegungen umsetzen
  • Besonders bei der sphärischen Helix wird durch die Multiplikation trigonometrischer Funktionen mit variierendem Radius eine dreidimensionale Spiralbahn erzeugt
  • Dies ist ein kreatives Beispiel dafür, dass sich Objekte auf beliebigen Pfaden bewegen lassen

Erkundung der Objektbewegung im 3D-Raum

Dieser Beitrag ist das Ergebnis einer persönlichen Erkundung verschiedener Methoden, Objekte im 3D-Raum zu bewegen, und insbesondere, wie sich ein sphärischer Helix-Pfad (spherical helix) mathematisch definieren und umsetzen lässt.

Grundlagen von Helix und dreidimensionaler Bewegung

  • Eine Helix bezeichnet eine dreidimensionale Struktur, die sich wie eine Feder drehend windet

  • Eine sphärische Helix ist das Konzept einer spiraligen Bewegung entlang der Oberfläche einer Kugel

  • Die Position eines Objekts im 3D-Raum wird durch die Koordinaten der drei Achsen x, y und z bestimmt

    • x-Achse: zuständig für die Bewegung nach links und rechts
    • y-Achse: entspricht der Auf- und Abbewegung
    • z-Achse: Veränderung in Vorwärts-/Rückwärtsrichtung (Tiefe)
  • Wenn die Position eines Objekts mithilfe mathematischer Funktionen in Abhängigkeit von der Zeit (t) definiert wird, entsteht eine Bewegungsbahn

Parametrische Funktionen und einfache Pfadbeispiele

  • Beispiel: Definiert man die x-Position als 10 * cos(πt/2), ergibt sich eine Cosinus-Wellenbewegung, die alle 2 Sekunden zwischen -10 und 10 hin- und herläuft

  • Auf die gleiche Weise lässt sich auch eine vertikale Hin-und-her-Bewegung erzeugen, wenn die y-Position als 10 * cos(πt/2) festgelegt wird

  • Verwendet man für x und y unterschiedliche Funktionen (z. B. x = 10 * cos(πt/2), y = 10 * sin(πt/2)), entstehen Bewegungen mit Phasenverschiebung; kombiniert man beide, ergibt sich ein kreisförmiger Pfad

  • Multipliziert man die Funktion mit einem zur Zeit proportionalen Term (z. B. x = 0.03 * t * cos(πt/2)), kann man ein Muster mit allmählich größer werdendem Radius erzeugen, also einen Spiralpfad (spiral)

Erzeugen eines sphärischen Helix-Pfads (spherical helix)

  • Anders als eine Spirale in der Ebene benötigt eine sphärische Helix einen dreidimensionalen Pfad

    • Für den z-Wert kann man z. B. 10 * cos(0.02 * πt) verwenden, um die Position nach vorn und hinten schrittweise zu verändern
  • Für x und y kann durch den Einsatz eines Produkts trigonometrischer Funktionen wie sin(0.02 * πt) ein Effekt erzeugt werden, bei dem der Radius in der Mitte am größten und an beiden Enden kleiner ist

  • Wendet man dieses Produkt sowohl auf x als auch auf y an, lässt sich ein Pfad erzeugen, der sich kreisförmig bewegt und dabei entlang der Kugeloberfläche, also dreidimensional, einer Spirale folgt

  • Mit einer solchen Kombination von Funktionen ist die mathematische Umsetzung eines sphärischen Helix-Pfads vollständig

Zusammenfassung und Anwendung

  • Jeder 3D-Pfad lässt sich erzeugen, indem x, y und z jeweils als parametrische Funktionen der Zeit definiert werden
  • Das bedeutet, dass sich von einfachen Kreisen und Spiralen bis hin zu komplexen Pfaden alles mathematisch festlegen lässt
  • Mit diesem Ansatz lässt sich visuell verstehen, dass selbst komplex wirkende Bewegungen in Wirklichkeit keine Unordnung, sondern klar definierte mathematische Pfade sind

visualrambling.space ist ein persönliches Projekt von Damar, in dem verschiedene Themen lernend und visuell erzählt werden

1 Kommentare

 
GN⁺ 2025-08-21
Hacker-News-Kommentare
  • Früher in der Seefahrt waren solche Kurven (Rhumb line, Loxodrome) sehr wichtig
    Denn während der Fahrt denselben Kurs beizubehalten, war viel einfacher
    Deshalb versuchten Seeleute, solchen Routen möglichst genau zu folgen
    So entstand das Konzept der Rhumb line
    Siehe Rhumb line auf Wikipedia
    Die Mercator-Karte machte die Berechnung solcher Kurse einfacher
    Siehe Mercator-Projektion auf Wikipedia
    Dieses Setup selbst hat immer wieder neue mathematische Entdeckungen hervorgebracht
    Zum Beispiel wird sie in einer Polarprojektion zu einer logarithmischen Spirale
    Von der Seite betrachtet wird sie zu einem Wellenpaket
    Wegen dieses mathematischen Reizes hat sich sogar Paul Erdos daran versucht
    Referenzpapier: Spiraling the Earth with C. G. J. Jacobi. Paul Erdös
    Als Randbemerkung scheint heute auf Hacker News ein Tag zu sein, an dem viele Beiträge über sphärische Geometrie auftauchen
    Links zu verwandten Diskussionen:
    1
    2
    3

    • Aber die Spiralkurve im OP ist keine Rhumb line (Loxodrome)
      Die Kurve hat auf der Oberfläche gleichmäßige Abstände, aber eine Rhumb line schneidet per Definition alle Meridiane unter demselben Winkel, weshalb die Linien dichter werden, je näher man an die Pole kommt
      Auch anhand der Formel
      x = 10 · cos(π·t/2) · sin(0.02·π·t)
      y = 10 · sin(π·t/2) · sin(0.02·π·t)
      z = 10 · cos(0.02·π·t)
      wenn man sie in Kugelkoordinaten (R=10) umschreibt, erhält man
      λ(t) = π/2 · t (Längengrad)
      φ(t) = π/2 - 0.02·π·t (Breitengrad)
      Leitet man ab, ergibt sich d(λ)/d(φ) = -25 (Konstante)
      Eine echte Rhumb line hat dagegen d(λ)/d(φ) in der Form tan(α) · sec(φ), also abhängig vom Breitengrad
      Diese Kurve ist also keine Rhumb line
      Wenn dich eine Kurve mit veränderlichem Schnittwinkel interessiert, empfehle ich diese Visualisierung
  • Dadurch inspiriert stelle ich ein unterhaltsames kugelbezogenes Projekt vor, das ich 2022 gebaut habe
    Projekt spheredisksample
    Ich finde, das passt perfekt zu einem Trendtag wie heute
    Für Leute, denen das gefallen könnte, empfehle ich auch das Projekt sphere-resample

  • Man sollte auch diesen Beitrag mit Diskussionen zu Rhumb lines usw. nicht vergessen

  • Ich finde die Visualisierung wirklich großartig
    Ein Punkt, auf den ich zusätzlich gehofft hatte, war: „Kann man sich mit konstanter Geschwindigkeit bewegen?“
    Wenn es nur darum geht, Punkte entlang des Pfads zu platzieren, ist das egal, aber bei tatsächlicher Bewegung sieht man, dass der Start und das Ende viel langsamer sind (nahezu durch den Radius bestimmt)
    Wenn man sich mit konstanter Geschwindigkeit bewegen möchte oder sogar eine Easing-Funktion fürs Verlangsamen und Beschleunigen anwenden will, frage ich mich, wie man das angehen würde
    Vermutlich gibt es da einen mathematisch eleganten Trick
    Ich stelle mir grob vor, dass man die Formel differenziert, eine Geschwindigkeitsfunktion erzeugt, dann mit dem Satz des Pythagoras dx, dy, dz behandelt und anschließend mit der Umkehrfunktion der Geschwindigkeitsfunktion wieder nach t' reparametrisiert
    Aber ich bin damit mathematisch nicht vertraut genug und rede vielleicht nur daher

    • Um sich mit konstanter Geschwindigkeit zu bewegen, braucht man eine „euklidische Parametrisierung“
      Das heißt, der t-Wert muss so angepasst werden, dass er proportional zur zurückgelegten euklidischen Distanz ist
      Das ist ein Konzept, das man bei Animationen entlang eines Pfads immer braucht
      Meist gibt es dafür aber keine geschlossene Form, deshalb muss man es numerisch bzw. rechnerisch lösen
      In der Praxis sucht man für jedes t das dt, das der gewünschten Distanz (ds) entspricht, etwa per Binärsuche oder Interpolationssuche
      Dann speichert man diese Ergebnisse und erzeugt daraus eine Polylinie mit gleichmäßig verteilten Punkten, was ein praktischer Ansatz ist (solange sich die Kurve nicht fortlaufend über die Zeit verändert)

    • Der mathematische Trick, den du ansprichst, ist genau die „Bogenlängenparametrisierung“
      Dabei verknüpft man mit der Umkehrfunktion der Bogenlängenfunktion der Kurve
      Abgesehen von einigen speziellen Kurvenfamilien gibt es dafür meist keine geschlossene Form, daher geht man rechnerisch vor

    • Die Intuition, t langsamer laufen zu lassen, ist richtig
      Die Winkelgeschwindigkeit bleibt zwar in Abhängigkeit von t erhalten, aber auch der Radius verändert sich mit t
      Das ist eine Art Archimedische Spirale
      Wenn man so parametrisiert, dass der Betrag der Geschwindigkeit konstant ist, bekommt man eine gleichmäßigere Bewegung
      Allerdings startet der Radius bei 0, deshalb muss man den Grenzwert auf irgendeine Weise behandeln
      Wenn man in Spielen oder Ähnlichem einem Pfad folgen muss, ist es auch praktikabel, Pfad und Tangente relativ zur Z-Achse anzuvisieren und die Bewegung mit wiederholten Geschwindigkeitsbegrenzungen und Ziehen wie bei einem Perlen-Spielzeug zu vereinfachen

  • Zu der Aussage „…eigentlich ist es nicht chaotisch. Es ist einfach ein Pfad, der durch eine mathematische Funktion definiert ist“:
    Ob die angegebene Funktion tatsächlich chaotisches Verhalten zeigt, weiß ich nicht, aber das Konzept von Chaos selbst ist seiner Natur nach ein Phänomen deterministischer mathematischer Funktionen (extreme Sensitivität gegenüber Anfangsbedingungen)
    Vermutlich hat der Autor das Wort „chaotic“ statt „random“ oder „non-deterministic“ gewählt

    • Ich halte solche technischen Einwände für sehr wichtig
      Für Hacker-News-Leser ist diese Unterscheidung interessant, oder sollte es zumindest sein
      Mathematisches Chaos ist ein deterministisches System mit extremer Sensitivität gegenüber Anfangsbedingungen
      Die Ergebnisse sehen zufällig aus, sind aber begrifflich völlig verschieden von Zufälligkeit

    • Ich stimme zu, dass der Begriff Chaos selbst eine Eigenschaft deterministischer mathematischer Funktionen ist
      In der alltäglichen Wörterbuchbedeutung meint er aber auch „völlige Unordnung und Verwirrung“, „einen vom Zufall beherrschten Zustand“ oder „die Unvorhersagbarkeit komplexer natürlicher Systeme“
      Um den Erwartungen und Sprachgewohnheiten gewöhnlicher Leser gerecht zu werden, kann es durchaus sinnvoll sein, eher verständliche Sprache als mathematische Strenge zu wählen

  • Ein Stück Feedback: Auf dem Handy war die Navigation anders als erwartet
    Ich wusste nicht, wie man es bedient, und habe zuerst Scrollen versucht
    Als eine Berührung des Bildschirms zur nächsten Seite führte, dachte ich: „Ah, so funktioniert das“
    Ich tippte rechts und kam zur nächsten Seite, und als ich später noch einmal klickte, versuchte ich links zu tippen, um zurückzugehen, sprang aber stattdessen gleich über zwei Seiten hinweg
    Dadurch habe ich einige Bildschirme verpasst, was etwas schade war
    Kein großes Problem, aber ein kleiner Hinweis hätte die Verwirrung reduziert und mir geholfen, mich besser zu konzentrieren

    • Auf der ersten Folie gibt es eine Bedienungsanleitung
      Trotzdem wäre es vielleicht gut, zusätzlich eine Swipe-Geste einzubauen (ich persönlich bevorzuge Tippen)
      Wenn es der „Kartenstapel“-Oberfläche von Social-Media-Apps ähneln soll, würde sich Swipe ebenfalls natürlich anfühlen
  • Der Inhalt ist auf grundlegendem Einstiegsniveau und scheint gut geeignet, damit Kinder beim Lernen von Mathematik darauf zurückgreifen können
    Noch besser wäre es gewesen, zwischendurch auch mathematische Konzepte wie die Kreisformeln (x = r cos t, y = r sin t) zu erwähnen
    Gute Themen zur Erweiterung wären Polarkoordinaten und lineare Algebra (Vektoren, Transformationen, Transformationen im 3D-Raum usw.)
    Falls der Autor mit solchen Themen nicht vertraut ist, würde ich die YouTube-Videos von 3blue1brown empfehlen
    Aus Sicht eines Programmierers fehlen allerdings Teile zu Coding, Bibliotheken oder echten 3D-Objekten (Vertices, Deformationen usw.), daher wäre es noch besser, wenn auch das behandelt würde

  • Mich hat interessiert, wie „genau“ die Bewegung entlang der Z-Achse bei einer sphärischen Helix ist
    Mit verschiedenen Funktionen wie z = c * t kann man eine einfache Verschiebung erreichen, und je nach Funktion ändern sich Dicke, Konsistenz und Gleichmäßigkeit der „Schalen“
    Die hier verwendete Funktion sieht visuell gut aus, aber ich frage mich, wie man das Ziel aus Sicht eines gleichmäßigen Abstands zwischen den Spiralen (oder einer gleichmäßigen Flächenaufteilung usw.) definieren sollte
    Ich würde gern wissen, nach welchem Prozess diese Funktion ausgewählt wurde oder ob sie einfach nur genommen wurde, weil sie gut aussieht

    • Vermutlich wurde diese Funktion einfach gewählt, weil sie programmiertechnisch bequem ist und gut aussieht
      Die wirklich „korrekte“ Methode wäre meiner Meinung nach, einen Punkt im 3D-Raum mit konstanter Geschwindigkeit zu bewegen (zum Beispiel wie ein Schiff, das sich wirklich auf der Erde bewegt)
      In diesem Fall lautet die Formel (siehe Codebeispiel)
      const degrees = Math.PI / 180
      const bearing = 5 * degrees
      const k = Math.tan(bearing)
      const v = 0.001
      const phi = (t) => vt/Math.sqrt(1 + kk)
      const theta = (t) => k*Math.ln(Math.tan(phi(t)/2))
      Umrechnung in x-, y-, z-Koordinaten
      const x = (t) => Math.sin(phi(t)) * Math.cos(theta(t))
      const y = (t) => Math.sin(phi(t)) * Math.sin(theta(t))
      const z = (t) => Math.cos(phi(t))
      In der Praxis braucht man also sogar die Log-Funktion von tan(phi/2), und diese Form ergibt sich beim Lösen einer Differentialgleichung
      Ich vermute, dass der Autor nicht zu dieser Komplexität mit ln(tan(phi/2)) gegangen ist

    • Entscheidend ist, die Geschwindigkeit entlang des Pfads konstant zu machen
      Man kann die Ableitung so festlegen, dass die Geschwindigkeit konstant wird, und dann nach z auflösen oder über t' reparametrisieren
      z = c * t zu wählen beeinflusst zugleich die Parametrisierung des Pfads und die tatsächliche Bahn

  • Die Animation ist beeindruckend flüssig
    Ich musste mich vor Kurzem mit dem Problem beschäftigen, N Punkte auf einer Kugel zu verteilen, und habe dabei einen einfachen Algorithmus namens „fibonacci-sphere“ entdeckt
    Auch dieser Ansatz erzeugt eine Spirale auf der Kugel, um Punkte zu platzieren
    Zugehöriges Paper: fibonacci-sphere PDF

  • Ich bin überrascht, dass Acko.net noch nicht erwähnt wurde
    Dort gibt es hervorragende Blogposts, die mit ähnlichen Werkzeugen komplexe Zahlen und Fraktale, besonders Julia-Fraktale, visuell erklären
    Allen, die sich dafür interessieren, sehr empfohlen
    How to fold a julia fractal - Acko.net Blog

  • Man kann direkt mit der Kurvenformel in 3D Desmos herumspielen Link zur 3D-Visualisierung in Desmos
    Interessant ist auch, dass die parametrische Gleichung dieser Spirale im Kugelkoordinatensystem linear ist
    Siehe Wikipedia zur Koordinatentransformation

  • Danke fürs Teilen, ich fand das wirklich sehr interessant