2 points par GN⁺ 2024-12-19 | 1 commentaires | Partager sur WhatsApp
  • 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

 
GN⁺ 2024-12-19
Commentaires sur Hacker News
  • Intérêt pour la découverte de Schemio, un nouveau logiciel open source

    • Le design et le rendu de Schemio sont très soignés
    • Bien qu’open source, le projet ne s’en vante pas
  • Adobe PostScript a popularisé les matrices de transformation dans les années 1980

    • SVG reprend largement le modèle d’image de PostScript
    • Un lien est fourni sur l’utilisation des matrices 2D dans PostScript
  • Les ressources de WebGLFundamentals.org constituent une excellente introduction aux hiérarchies de transformations

    • Un lien est fourni vers le scene graph en WebGL
  • L’auteur suggère de se pencher sur les coordonnées homogènes

    • Un lien Wikipédia sur les coordonnées homogènes est fourni
  • Le framework QGraphicsView est un framework graphique très puissant

    • Il fournit des outils robustes, notamment pour les transformations scène-objet et les hiérarchies d’objets
    • Aucun équivalent sur le web n’a été trouvé qui fonctionne aussi bien que QGVF
  • Aspect intéressant des transformations en 2D avec des matrices homogènes 3x3

    • Les transformations 2D sont en réalité des cisaillements en 3D le long du plan z = 1
    • Un lien YouTube connexe est fourni
  • Schemio a l’air très intéressant

    • De nombreux diagrammes de flux sont créés avec Claude
    • Il serait intéressant de faire un travail similaire avec Schemio
  • Article et logiciel intéressants

    • Recherche d’un logiciel open source puissant pour les diagrammes
    • Il est étonnant que Schemio ne soit pas apparu sur le radar
    • L’utilisation de l’algèbre géométrique pour les transformations et les animations semblerait plus intuitive
    • Un lien sur l’algèbre géométrique est fourni
  • 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

    • On se demande si ce processus est coûteux
    • Cela peut rester acceptable pour des figures de taille raisonnable
  • Schemio est très beau et semble réellement mériter d’être utilisé