Diferenças visuais e comportamentais registradas
Referência de desenvolvimento: Matplotlib 3.11.2/Agg, Python 3.14.4, Windows. Azimlib permanece independente; o renderer cartográfico, Scene, layout e API são próprios. Este registro encerra 3.09, após a conferência 3.08 da janela Tk visível no Windows.
| Área | Diferença / limite atual | Evidência e decisão |
|---|---|---|
| Texto raster | Agg usa hinting/posições de glifos; Azimlib usa cobertura/supersampling próprios com Pillow | Qualidade, fontes e rotação; não se promete identidade dos pixels. Máxima diferença das caixas nas 768 referências de rotação: cerca de 1,43 px a 100 DPI |
| Traços e clipping | Cobertura subpixel, recorte fracionário, caps/joins/dashes podem rasterizar diferentemente | Estilos, mapas completos e baselines atuais; larguras públicas continuam em pontos |
| Hachuras | Vocabulário e repetição familiares; formas/espacamento gerados pelo nosso núcleo | Científico; comparar o mesmo Scene em Agg não compara o gerador nativo de hachuras |
| SVG | Texto vetorial editável com fontes DejaVu embarcadas; rasterização final depende do viewer | Renderers; XML/textos/clip/transform conferidos, sem alegar PNG idêntico em todos os navegadores |
| Layout | Solver próprio por medidas, uma raiz GridSpec e seus filhos; projeção preserva aspecto geográfico | Aceite de layout; posições manuais e textos livres continuam responsabilidade do autor |
| Colorbar no topo | A referência Tk/Agg usa posicionamento por baseline no rótulo superior; gap visível pode diferir do labelpad | 24 controles/18 gaps físicos; nos casos registrados, Azimlib mantém 8 pt de distância geométrica, referência superior aproximadamente 4,64 pt |
| Isolinhas | Marching squares, decisões em saddles e posicionamento de labels próprios | Limites de contornos, edições; sem contourf, triangulação ou toda a política automática de clabel |
| Componentes cartográficos | Escala, norte, rosa e overview são extensões opt-in; não são componentes nativos do pyplot | Componentes; norte/rosa independentes, foco preto e escala local esférica |
| Dados/projeções no corte 0.2.0 | Natural Earth generalizado, seis projeções esféricas; transformação 4326/3857 própria | Dados, matemática; diferenças de datum/elipsoide/detalhe não são defeitos do renderer |
| Viewer Tk | Renderer/navegação e sete ícones próprios, sem assets/código da referência. Grupos de botões e tooltip imediato à direita seguem Tk; Pan/Zoom são Checkbuttons. Pan altera limites e redesenha ticks durante o arrasto, sem traduzir bitmap/moldura. Hover plano, editor ttk e nomes opcionais preservados | Quatro escalas Tk, 60 gestos e integração, verificação visual Windows; decoração Tk não é Qt. Aparência/input observados neste Windows aceitos em 3.08; latência/input Windows encerrados em 4.09; CI desktop nos três sistemas aprovada. Conferência humana nativa Linux/macOS fica posterior, conforme o aceite 0.2.0 |
| Viewer HTML | Cena offline sem vínculo com Python; navegação/ornamentos dependem da projeção | Navegação, componentes; não se declara equivalência integral ao desktop |
O catálogo da galeria separa referências nativas de comparações de raster sobre a mesma cena. Os JSON antigos de desempenho e qualidade preservam os hashes/medições do código que produziram seus resultados; as novas baselines têm relatório próprio. As métricas RGB são diagnósticos, não notas de qualidade perceptual.
Correções de geometria, textos e componentes já auditadas estão nos aceites 1 e 2. Este registro não converte uma verificação oculta em inspeção da janela visível. O passo 3 foi encerrado com observação visual Windows, além dos testes/artefatos; a medição física Windows e a CI nos três sistemas encerraram os passos 4–5. A conferência humana nativa Linux/macOS permanece uma limitação documentada do corte 0.2.0.
A 0.3.0 em desenvolvimento acrescenta duas projeções esféricas, TM/UTM elipsoidais regionais, geodesia e vistas cruzadas. Esse avanço possui matriz numérica e limites próprios; não altera retroativamente as medições visuais da 0.2.0 descritas acima.