2 pontos por GN⁺ 2024-12-19 | 1 comentários | Compartilhar no WhatsApp
  • Matrizes são um dos conceitos importantes de álgebra linear aprendidos na escola e são úteis para resolver diversos problemas. Este artigo explica como elas foram utilizadas no desenvolvimento de um editor de diagramas interativo chamado Schemio.

Estágio inicial de desenvolvimento do Schemio

  • No início, o Schemio tinha uma forma simples, permitindo ao usuário criar formas e movê-las, redimensioná-las e rotacioná-las.
  • As formas eram representadas como áreas simples definidas por posição, tamanho e ângulo de rotação.
  • A estrutura de dados representava as formas em um arranjo plano.

O problema da estrutura hierárquica

  • Para conectar formas entre si e criar interações complexas, foi introduzida uma hierarquia de itens.
  • Com SVG, é fácil renderizar uma estrutura hierárquica, mas o Schemio precisava oferecer mais do que apenas renderização.
  • Era necessário converter entre coordenadas locais e coordenadas globais.

Escalonamento e ponto de pivô

  • O escalonamento permite ajustar dinamicamente o tamanho de um objeto, e o ponto de pivô define o centro da rotação.
  • Ao adicionar escalonamento e ponto de pivô, o gerenciamento das transformações ficou mais complexo, e o problema foi resolvido com o uso de matrizes.

Fundamentos das transformações por matriz

  • Transformações podem ser representadas com matrizes. Por exemplo, um ponto no espaço pode ser representado como uma matriz 3x1.
  • Multiplicando a matriz de transformação pela matriz do ponto, obtém-se o ponto transformado.
  • É possível combinar matrizes de transformação para realizar vários tipos de transformação.

Coordenadas globais e coordenadas locais

  • Converter coordenadas locais em coordenadas globais é simples, mas o processo inverso é mais complexo.
  • É possível converter coordenadas globais em coordenadas locais usando a matriz inversa.

Acoplar e desacoplar objetos: o desafio das transformações hierárquicas

  • Ao arrastar e soltar um objeto sobre outro ou alterar a hierarquia, é preciso recalcular a nova posição e a rotação.
  • A posição e a rotação do objeto arrastado são ajustadas para que ele se mova de forma natural na tela.

Encerrando

  • Durante o desenvolvimento do Schemio, conceitos matemáticos foram usados para resolver problemas complexos.
  • Se tiver interesse no projeto, é possível conferir o código-fonte no GitHub e experimentar diretamente no site do Schemio.

1 comentários

 
GN⁺ 2024-12-19
Comentários do Hacker News
  • Interesse em ter descoberto um novo software open source chamado Schemio

    • O design e a aparência do Schemio são muito refinados
    • Apesar de ser open source, isso não é alardeado
  • O Adobe PostScript popularizou as matrizes de transformação nos anos 1980

    • O SVG herdou bastante do modelo de imagem do PostScript
    • Foi fornecido um link sobre o uso de matrizes 2D no PostScript
  • O material do WebGLFundamentals.org é uma excelente introdução à hierarquia de transformações

    • Foi fornecido um link sobre scene graph no WebGL
  • O autor sugere pesquisar sobre coordenadas homogêneas

    • Foi fornecido um link da Wikipedia sobre coordenadas homogêneas
  • O framework QGraphicsView é um framework gráfico muito poderoso

    • Oferece ferramentas robustas, incluindo transformações entre cena e objeto e hierarquia de objetos
    • Não foi encontrada na web uma alternativa que funcione tão bem quanto o QGVF
  • Um aspecto interessante do uso de matrizes homogêneas 3x3 para transformações em 2D

    • Transformações 2D são, na prática, cisalhamentos em 3D ao longo do plano z = 1
    • Foi fornecido um link relacionado no YouTube
  • O Schemio parece muito legal

    • A pessoa está usando Claude para criar muitos diagramas de fluxo
    • Gostaria de fazer algo parecido com o Schemio
  • Artigo e software interessantes

    • A pessoa estava procurando um software open source robusto para diagramas
    • É estranho que o Schemio não tenha aparecido no radar
    • Usar álgebra geométrica para transformações e animações parece mais intuitivo
    • Foi fornecido um link sobre álgebra geométrica
  • Ao mover objetos, se houver muitos objetos filhos, é necessário atualizar o termo A(i-1) de todos eles

    • Há curiosidade sobre o custo desse processo
    • Em formas de tamanho moderado, isso talvez seja aceitável
  • O Schemio é muito bonito e parece realmente valer a pena usar