Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.2.0

dart_earcut

Algoritmo de triangulação performático baseado em https://github.com/mapbox/earcut

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
1,1 mi
Curtidas
10
Pontos Pub
150

Instalar pacote

flutter pub add dart_earcut

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

dart_earcut é uma biblioteca de triangulação de alto desempenho para Dart, implementando o algoritmo Earcut originalmente desenvolvido pela Mapbox. Ela converte com eficiência formas poligonais em triângulos, tornando-se ideal para renderizar geometrias complexas em aplicações de gráficos 2D e visualização. O pacote suporta múltiplas plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux, garantindo consistência entre plataformas. Projetado para velocidade e precisão, ele lida com polígonos simples e complexos com buracos, fornecendo resultados confiáveis para tarefas de geometria computacional.

Casos de uso

  • Desenvolvimento de jogos 2D
  • Renderização de mapa baseada na web
  • Processamento de gráficos vetoriais
  • Visualização interativa de dados
  • Geração de malha para componentes da interface

Principais recursos

  • Desempenho rápido de triangulação
  • Suporta polígonos com buracos
  • Compatibilidade multiplataforma
  • API simples para entrada de polígono
  • Resultados precisos para formas complexas

Indicado para

  • Desenvolvedores de gráficos
  • criadores de aplicativos de GIS
  • Designers de UI/UX trabalhando com formas personalizadas
  • Integradores de engine de jogo
  • engenheiros de visualização de dados

Considerações

  • Requer entrada de polígono válida (arestas não cruzadas)
  • Não otimizado para atualizações dinâmicas em tempo real
  • Limitado à triangulação 2D
  • Não lida diretamente com polígonos auto-interseccionados
  • Pode ser necessário pré-processamento para entradas irregulares

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

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.

Categorias

Repositório-fonte

Projetos que usam este pacote