- 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
Comentários do Hacker News
Interesse em ter descoberto um novo software open source chamado Schemio
O Adobe PostScript popularizou as matrizes de transformação nos anos 1980
O material do WebGLFundamentals.org é uma excelente introdução à hierarquia de transformações
O autor sugere pesquisar sobre coordenadas homogêneas
O framework QGraphicsView é um framework gráfico muito poderoso
Um aspecto interessante do uso de matrizes homogêneas 3x3 para transformações em 2D
O Schemio parece muito legal
Artigo e software interessantes
Ao mover objetos, se houver muitos objetos filhos, é necessário atualizar o termo A(i-1) de todos eles
O Schemio é muito bonito e parece realmente valer a pena usar