- Les matrices sont l’un des concepts importants d’algèbre linéaire appris à l’école, et elles sont utiles pour résoudre divers problèmes. Cet article explique comment elles ont été utilisées lors du développement d’un éditeur de diagrammes interactif appelé Schemio.
Premières étapes du développement de Schemio
- Au départ, Schemio avait une forme simple, permettant aux utilisateurs de créer des formes, de les déplacer, de les redimensionner et de les faire pivoter.
- Les formes étaient représentées comme des zones simples définies par une position, une taille et un angle de rotation.
- La structure de données représentait les formes sous la forme d’un tableau à plat.
Le problème de la structure hiérarchique
- Pour relier les formes entre elles et créer des interactions complexes, une hiérarchie d’items a été introduite.
- Avec SVG, il est facile de rendre une structure hiérarchique, mais Schemio devait offrir davantage que le simple rendu.
- Il était nécessaire de convertir entre coordonnées locales et coordonnées globales.
Mise à l’échelle et point de pivot
- La mise à l’échelle permet d’ajuster dynamiquement la taille d’un objet, tandis que le point de pivot définit le centre de rotation.
- L’ajout de la mise à l’échelle et du point de pivot a complexifié la gestion des transformations, et le problème a été résolu à l’aide de matrices.
Bases des transformations matricielles
- Les transformations peuvent être représentées à l’aide de matrices. Par exemple, un point dans l’espace peut être représenté par une matrice 3x1.
- En multipliant une matrice de transformation par la matrice d’un point, on obtient le point transformé.
- Il est possible de combiner des matrices de transformation pour effectuer diverses transformations.
Coordonnées globales et coordonnées locales
- Convertir des coordonnées locales en coordonnées globales est simple, mais l’inverse est plus complexe.
- On peut convertir des coordonnées globales en coordonnées locales à l’aide de l’inverse d’une matrice.
Attacher et détacher des objets : le défi des transformations hiérarchiques
- Lorsqu’on fait glisser un objet sur un autre ou qu’on modifie la hiérarchie, il faut recalculer sa nouvelle position et sa rotation.
- La position et la rotation de l’objet déplacé sont ajustées pour que son mouvement reste naturel à l’écran.
Conclusion
- Le développement de Schemio montre comment des concepts mathématiques peuvent être utilisés pour résoudre des problèmes complexes.
- Si le projet vous intéresse, vous pouvez consulter le code source sur GitHub et l’essayer directement sur le site web de Schemio.
1 commentaires
Commentaires sur Hacker News
Intérêt pour la découverte de Schemio, un nouveau logiciel open source
Adobe PostScript a popularisé les matrices de transformation dans les années 1980
Les ressources de WebGLFundamentals.org constituent une excellente introduction aux hiérarchies de transformations
L’auteur suggère de se pencher sur les coordonnées homogènes
Le framework QGraphicsView est un framework graphique très puissant
Aspect intéressant des transformations en 2D avec des matrices homogènes 3x3
Schemio a l’air très intéressant
Article et logiciel intéressants
Lors du déplacement d’un objet, s’il possède beaucoup d’objets enfants, il faut mettre à jour le terme A(i-1) de tous les enfants
Schemio est très beau et semble réellement mériter d’être utilisé