↓Zum Hauptinhalt springen

Komp-Geom

Dieser deutschsprachige Beitrag ist eine KI-unterstützte Übersetzung des englischen Originals.

Was passiert, wenn zwei berechnete Punkte nur beinahe übereinstimmen? In der Computergeometrie kann so ein kleiner Unterschied das Ergebnis eines Algorithmus verändern. Mit Komp-Geom beschäftige ich mich mit solchen Fragen und entwickle dafür Werkzeuge in Kotlin.

Das Projekt hat drei Teile:

  • Komp-Geom ist die Kotlin-Multiplatform-Bibliothek mit geometrischen Grundformen, Operationen und Algorithmen.
  • Komp-Geom Visualizer zeigt, was die Algorithmen tun. So lassen sich auch schwierige Randfälle untersuchen.
  • Komp-Geom Examples zeigt anhand kleiner Java-Programme, wie sich die Bibliothek verwenden lässt.

Fünf violette Strecken und ihre orangefarbenen Schnittpunkte im Komp-Geom Visualizer. Links sind die Algorithmuswerkzeuge zu sehen.
Mit Tests prüfe ich, ob ein Algorithmus das erwartete Ergebnis liefert. Aber es macht mehr Spaß, ihn bei der Arbeit zu sehen: Hier zeigt der Visualisierer die vom Bentley-Ottmann-Algorithmus gefundenen Schnittpunkte in Orange.

Warum ich daran arbeite #

Mich interessiert an Computergeometrie, wie eng Algorithmen und ihre praktische Umsetzung zusammenhängen. Eine Formel allein reicht nicht, wenn Rundungsfehler einen Vergleich verändern oder eine API die Verwendung unnötig schwer macht. Ich möchte verstehen, wo diese Probleme auftreten, und eine Bibliothek bauen, die sich in Kotlin gut verwenden lässt.

Die drei Teile helfen mir dabei auf unterschiedliche Weise: In der Bibliothek setze ich die Algorithmen um, im Visualisierer kann ich ihr Verhalten nachvollziehen und mit den Beispielen prüfe ich, wie gut sich die Bibliothek in anderen Programmen verwenden lässt.

Woran ich arbeite #

  • Geometrische Grundformen in einer, zwei und drei Dimensionen
  • Vergleiche von Gleitkommazahlen, bei denen kleine Rundungsfehler berücksichtigt werden
  • Algorithmen wie die Suche nach dem nächsten Punktepaar (Closest Pair) und die Berechnung der konvexen Hülle (Convex Hull)
  • Kotlin-Multiplatform-APIs mit unveränderlichen Datenstrukturen und veränderlichen Varianten für rechenintensive Fälle
  • Tests, Dokumentation und Benchmarks für die unterstützten Plattformen

Komp-Geom ist noch in Entwicklung. Ich ergänze Algorithmen, arbeite an verständlicheren Visualisierungen und überarbeite die API, wenn die Beispiele zeigen, dass etwas umständlich ist.

Code und Demo #

Bibliothek

Komp-Geom

Quellcode, Dokumentation und Tests der Kotlin-Multiplatform-Bibliothek.

Beispiele

Komp-Geom Examples

Beispiele für die Verwendung der Bibliothek in Java-Programmen.

Constantin Ponfick
Autor
Constantin Ponfick
Ich schreibe über Softwareentwicklung, Cloud-Entwicklung, KI-unterstützte Entwicklung und persönliche Projekte.