Linux, informatique et électronique libre

LaTeX et Sketch


J’utilise depuis longtemps pstricks pour intégrer directement des figures géométriques dans mes document en $latex LaTeX$. En particulier les exportations depuis Geogebra sont un moyen simple de faire cette intégration sans mettre les doigts dans le code… même si c’est drôle !

Le soucis est avec les figures en 3D. Je viens de découvrir Sketch, un petit soft sous Linux mais qui fonctionne aussi avec les Fenêtres.

Sketch permet de construire de manière assez mathématique une objet en 3D puis en indiquant le point de vue, en ajoutant translation, rotation… il vous fournit le code pstricks prêt à insérer dans vos fichiers $latex LaTeX$.

Un petit exemple :

—   Fichier Cube.sk  —

def c 3      % Taille du cube
def cube{
polygon[cull=false,fillcolor=green](0,0,0)(c,0,0)(c,c,0)(0,c,0)  % cull=false pour une histoire de face cachée
polygon[cull=false,fillcolor=blue](0,0,c)(c,0,c)(c,c,c)(0,c,c)
polygon[cull=false,fillcolor=orange](0,0,0)(0,c,0)(0,c,c)(0,0,c)
polygon[cull=false,fillcolor=red](c,0,0)(c,c,0)(c,c,c)(c,0,c)
polygon[cull=false,fillcolor=white](0,0,0)(c,0,0)(c,0,c)(0,0,c)
polygon[cull=false,fillcolor=yellow](0,c,0)(c,c,0)(c,c,c)(0,c,c)
}
put{view ((c,c/2,c),(0,0,0))}{cube}  % je regarde mon cube depuis (c,c/2,c) en direction de (0,0,0)
put{rotate(90,(0,0,0),[c,0,0]) then view ((c,c/2,c),(0,0,0)) then translate([4,0,0])}{cube} % une rotation en plus
put{rotate(180,(0,0,0),[c,0,0]) then view ((c,-c/2,c),(0,0,0)) then translate([0,-5,6])}{cube}

Puis sketch Cube.sk -o Cube.tex

J’obtiens le code pstricks et voici le résultat :

Ce qui est intéressant, c’est de définir le cube de manière mathématique puis de laisser sketch faire les rotations, les translations, le point de vue !

Je viens de rédiger une méthode pour le Rubik’s Cube de cette manière.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *