Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.2.0

dart_earcut

Leistungsstarker Triangulierungs-Algorithmus basierend auf https://github.com/mapbox/earcut

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
1,1 Mio.
Likes
10
Pub-Punkte
150

Paket installieren

flutter pub add dart_earcut

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

dart_earcut ist eine Hochleistungs-Triangulationsbibliothek für Dart, die den ursprünglich von Mapbox entwickelten Earcut-Algorithmus implementiert. Sie konvertiert polygonale Formen effizient in Dreiecke und ist daher ideal für die Darstellung komplexer Geometrien in 2D-Grafik- und Visualisierungsanwendungen geeignet. Das Paket unterstützt mehrere Plattformen wie Android, iOS, Web, macOS, Windows und Linux und gewährleistet so eine plattformübergreifende Konsistenz. Entwickelt für Geschwindigkeit und Genauigkeit, verarbeitet es sowohl einfache als auch komplexe Polygone mit Löchern und liefert zuverlässige Ergebnisse für Aufgaben der rechnerischen Geometrie.

Anwendungsfälle

  • 2D-Spieleentwicklung
  • Web-basierte Kartenrendering
  • Vektorgrafikverarbeitung
  • Interaktive Datenvisualisierung
  • Netzgenerierung für UI-Komponenten

Hauptmerkmale

  • Schnelle Triangulierungsleistung
  • Unterstützt Polygone mit Löchern
  • Plattformübergreifende Kompatibilität
  • Einfaches API für Polygon-Eingabe
  • Genauige Ergebnisse für komplexe Formen

Geeignet für

  • Grafikentwickler
  • Ersteller von GIS-Anwendungen
  • UI/UX-Designer, die mit benutzerdefinierten Formen arbeiten
  • Game-Engine-Integrator
  • Data-Viz-Ingenieure

Hinweise

  • Benötigt gültige Polygon-Eingabe (nicht sich schneidende Kanten)
  • Nicht für Echtzeit-Dynamik-Updates optimiert
  • Beschränkt auf 2D-Triangulation
  • Behandelt selbstüberschneidende Polygone nicht direkt
  • Möglicherweise ist eine Vorverarbeitung für unregelmäßige Eingaben erforderlich

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

dart_earcut

Ear-clipping (earcutting) triangulation algorithm, ported (with minor API differences) from earcut4j/earcut4j and mapbox/earcut. Also includes the fix from mapbox/earcut#91.

Usage

  • 2D (x/y) coordinates, without holes

    • triangulateRaw: expects points in the format [x0, y0, x1, y1, x2, y2, ...]
    • triangulateFromPoints: expects 'dart:math's Point objects
    final triangles = Earcut.triangulateRaw([10,0, 0,50, 60,60, 70,10]);
    final triangles = Earcut.triangulateFromPoints([Point(10, 0), Point(0,50), Point(60,60), Point(70,10)]);
    // Both return [1,0,3, 3,2,1]
    
  • Holes
    A list of hole indicies, if any. For example, [5, 8] for a 12-vertice input would mean one hole with vertices 5-7 and another with 8-11. If you pass a single vertice as a hole, Earcut treats it as a Steiner point.

    final List<int> triangles = Earcut.triangulateRaw([0, 0, 100, 0, 100, 100, 0, 100, 20, 20, 80, 20, 80, 80, 20, 80], holeIndices: [4]);
    // Returns [3,0,4, 5,4,0, 3,4,7, 5,0,1, 2,3,7, 6,5,1, 2,7,6, 6,1,2]
    
    • triangulateFromPointsAndHolePoints performs the logic to generate holeIndices when the outline of a polygon and the outline of its holes are available as points seperately.
  • More dimensions
    Expected to be in the format [x0, y0, z0, x1, y1, z1, x2, y2, z2, ...]

    final List<int> triangles = Earcut.triangulateRaw([10, 0, 1, 0, 50, 2, 60, 60, 3, 70, 10, 4], dimensions: 3);
    // Returns [1,0,3, 3,2,1]
    

The Algorithm

The library implements a modified ear slicing algorithm, optimized by z-order curve hashing and extended to handle holes, twisted polygons, degeneracies and self-intersections in a way that doesn't guarantee correctness of triangulation, but attempts to always produce acceptable results for practical data.

It's based on ideas from FIST: Fast Industrial-Strength Triangulation of Polygons by Martin Held andTriangulation by Ear Clipping by David Eberly.

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden