2 Punkte von GN⁺ 2024-12-19 | 1 Kommentare | Auf WhatsApp teilen
  • Matrizen sind eines der wichtigen Konzepte der linearen Algebra, die man in der Schule lernt, und sie sind nützlich, um verschiedenste Probleme zu lösen. Dieser Artikel erklärt, wie sie bei der Entwicklung eines interaktiven Diagramm-Editors namens Schemio eingesetzt wurden.

Frühe Entwicklungsphase von Schemio

  • Das frühe Schemio war einfach aufgebaut: Nutzer konnten Formen erstellen, verschieben, in der Größe ändern und drehen.
  • Formen wurden als einfache Bereiche dargestellt, die durch Position, Größe und Rotationswinkel definiert waren.
  • Die Datenstruktur stellte die Formen als flaches Array dar.

Das Problem der Hierarchie

  • Um Formen miteinander zu verbinden und komplexe Interaktionen zu erstellen, wurde eine Item-Hierarchie eingeführt.
  • Mit SVG lässt sich eine Hierarchie leicht rendern, aber Schemio musste mehr leisten als nur Rendering.
  • Es war eine Umwandlung zwischen lokalen Koordinaten und Weltkoordinaten erforderlich.

Skalierung und Pivot-Punkte

  • Skalierung ermöglicht es, die Größe eines Objekts dynamisch anzupassen, und Pivot-Punkte definieren das Zentrum der Rotation.
  • Mit der Einführung von Skalierung und Pivot-Punkten wurde die Verwaltung der Transformationen komplexer, und das Problem wurde mithilfe von Matrizen gelöst.

Grundlagen der Matrixtransformation

  • Transformationen können mit Matrizen dargestellt werden. Zum Beispiel kann ein Punkt im Raum als 3x1-Matrix dargestellt werden.
  • Durch Multiplikation der Transformationsmatrix mit der Punktmatrix erhält man den transformierten Punkt.
  • Durch Kombination von Transformationsmatrizen lassen sich verschiedene Transformationen durchführen.

Weltkoordinaten und lokale Koordinaten

  • Die Umwandlung von lokalen Koordinaten in Weltkoordinaten ist einfach, die umgekehrte Richtung jedoch komplex.
  • Mit der inversen Matrix lässt sich eine Weltkoordinate in eine lokale Koordinate umwandeln.

Einhängen und Trennen von Objekten: Die Herausforderung hierarchischer Transformationen

  • Wenn Objekte per Drag-and-Drop auf andere Objekte gezogen oder Hierarchien geändert werden, müssen neue Positionen und Rotationen neu berechnet werden.
  • Position und Rotation des gezogenen Objekts werden so angepasst, dass es sich auf dem Bildschirm natürlich bewegt.

Fazit

  • Im Entwicklungsprozess von Schemio wurden mathematische Konzepte genutzt, um komplexe Probleme zu lösen.
  • Wer sich für das Projekt interessiert, kann den Quellcode auf GitHub ansehen und Schemio direkt auf der Website ausprobieren.

1 Kommentare

 
GN⁺ 2024-12-19
Hacker-News-Kommentare
  • Interesse daran, eine neue Open-Source-Software namens Schemio entdeckt zu haben

    • Das Design und die Anmutung von Schemio sind sehr gelungen
    • Obwohl es Open Source ist, stellt es das nicht demonstrativ heraus
  • Adobe PostScript hat in den 1980er-Jahren Transformationsmatrizen populär gemacht

    • SVG übernimmt große Teile des Bildmodells von PostScript
    • Verweis auf die Nutzung von 2D-Matrizen in PostScript
  • Die Materialien von WebGLFundamentals.org sind eine hervorragende Einführung in Transformationshierarchien

    • Verweis auf einen WebGL-Szenengraphen
  • Der Autor schlägt vor, sich mit homogenen Koordinaten zu beschäftigen

    • Verweis auf den Wikipedia-Artikel zu homogenen Koordinaten
  • Das Framework QGraphicsView ist ein sehr mächtiges Grafik-Framework

    • Bietet leistungsstarke Werkzeuge, darunter Szenen-Objekt-Transformationen und Objekthierarchien
    • Im Web wurde keine Alternative gefunden, die so gut funktioniert wie QGVF
  • Ein interessanter Aspekt von 2D-Transformationen mit 3x3-homogenen Matrizen

    • 2D-Transformationen sind in Wirklichkeit Scherungen im 3D-Raum entlang der Ebene z = 1
    • Verweis auf ein passendes YouTube-Video
  • Schemio sieht großartig aus

    • Es werden mit Claude viele Flowcharts erstellt
    • Ähnliche Aufgaben würde man gern mit Schemio erledigen
  • Ein interessanter Artikel und eine interessante Software

    • Es wurde nach leistungsfähiger Open-Source-Software für Diagramme gesucht
    • Es ist seltsam, dass Schemio bisher nicht auf dem Radar war
    • Der Einsatz von geometrischer Algebra für Transformationen und Animationen wirkt intuitiver
    • Verweis auf geometrische Algebra
  • Wenn ein Objekt verschoben wird und es viele Kindobjekte gibt, müssen alle A(i-1)-Terme der Kinder aktualisiert werden

    • Es stellt sich die Frage, ob dieser Prozess kostspielig ist
    • Bei Formen mittlerer Größe könnte das in Ordnung sein
  • Schemio ist sehr schön und scheint tatsächlich die Nutzung wert zu sein