Paquet xpicture, une alternative ultra légère à tikz ou à pstricks

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté par le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2623
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Paquet xpicture, une alternative ultra légère à tikz ou à pstricks

Message par gigiair »

J'ai réalisé une macro pour tracer des rosaces sans n'utiliser ni tikz ni pstricks afin de tester les capacités de xpicture . En particulier sa capacité à utiliser les coordonnées polaire. Bien sûr il ne faut pas comparer à tikz ou à pstricks, mais la documentation de xpicture ne comporte que 57 pages. À comparer à celle des deux usines à gaz . Jetez y un oeil pour voir quelles sont ses étonnantes possibilités.

Code : Tout sélectionner

 \documentclass{article}
 \usepackage{xpicture}
 \usepackage{multido}

\begin{document}

\newcommand{\xrosace}[1]{%
        \polarreference\degreesangles%
        \newcommand{\Depart}{\ifodd#1-90\else0\fi}%
       \DIVIDE{360}{#1}{\Rot}  %
        \DIVIDE{\Rot}{2}{\DemRot}%
        \ifodd#1\SUBTRACT{90}{\DemRot}{\Orig}%
        \else\SUBTRACT{180}{\Rot}{\Orig}%
        \fi
       \ifodd#1\ADD{\Orig}{\Rot}{\Extr}%
        \else\ADD{180}{\Rot}{\Extr}%
        \fi
        \DIVIDE{\Rot}{4}{\QrtRot}%
        \ifodd#1\DEGREESSIN{\QrtRot}{\Drayon}%
        \else\DEGREESSIN{\DemRot}{\Drayon}%
        \fi
       \MULTIPLY{2}{\Drayon}{\rayon}%
        \DIVIDE{1}{\rayon}{\Irayon}%
       \Circle{1}%
        \multido{\rangle=\Depart+\Rot,%
                \rorig=\Orig+\Rot,%
                \rextr=\Extr+\Rot}{#1}%
        {\Put(\Irayon,\rangle){\circularArc{\Irayon}{\rorig}{\rextr}}}
}% fin xrosace

\unitlength=2cm

\begin{xpicture}(9,4)(-3,-1)
        \Put(-4, 0){\xrosace{3}}
        \Put(-2, 0){\xrosace{4}}
        \Put( 0, 0){\xrosace{5}}
        \Put( 2, 0){\xrosace{6}}
        \Put( 4, 0){\xrosace{7}}
        \Put(-4,-2){\xrosace{8}}
        \Put(-2,-2){\xrosace{9}}
        \Put( 0,-2){\xrosace{10}}
        \Put( 2,-2){\xrosace{11}}
        \Put( 4,-2){\xrosace{12}}
\end{xpicture}

\end{document}
L'algorithme de construction est radicalement différent si le nombre de branches est pair ou impair. J'ai fusionné les deux algorithmes en un seul grâce au test \ifodd. Mais dans un premier temps, j'avais produit deux algorithmes distincts.

Je précise que je me suis aidé de Geogebra pour concevoir les algorithmes. Il consiste en tracé d'un arc de cercle que l'on «rotationne» autant de fois qu'il le faut pour tracer la rosace. Ça peut être l'objet d'exercices ou de problèmes pour vos élèves pour calculer les angles.
Une homothétie convenable est appliquée pour ramener le diamètre de la rosace à l'unité.

Image
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par gigiair le jeudi 07 janvier 2021, 11:24, modifié 1 fois.
JJR.
LaTeXien migrateur.
pzorba75
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 216
Inscription : mardi 20 août 2013, 04:50
Localisation : Paris

Re: xpicture, une alternative légère à tikz ou à pstricks

Message par pzorba75 »

La documentation disponible sur ctan.org est un document pdf de 57 pages, qui commence directement avec des exemples assez complexes.
Pas vraiment facile pour basculer de PStricks vers ce package, d'autant plus que Geogebra par exemple exporte du code PStricks facilement modifiable pour améliore les figures préparées facilement en mode interactif.
Tout rebâtir en partant quasiment à zéro avec xpicture me semble risqué, au moins en terme de productivité.
Bonne année 2021, pour ma part avec PStricks.
On se lasse de tout, excepté d'apprendre.
Virgile
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1945
Inscription : samedi 29 décembre 2007, 00:58

Re: Paquet xpicture, une alternative légère à tikz ou à pstricks

Message par projetmbc »

Bonjour.

Au contraire je trouve le 1er exemple simple car proche des pratiques usuels des paradigmes de programmation plus classiques que TeX. Par exemple ce qui suit est limpide.

Code : Tout sélectionner

\setlength{\unitlength}{1cm}
\CUBE{1.5}{\mymax}

\begin{Picture}(-2,-4)(2,4)
    \cartesianaxes(-1.5,-\mymax)(1.5,\mymax)
    \pictcolor{blue}
    \PlotFunction[8]{\CUBEfunction}{-1.5}{1.5}
    \Put[E](1.5,\mymax){$f(t)=t^3$}
\end{Picture}
Pour GeoGebra, il suffirait à long terme d'envisager un convertisseur de plus.

Un gros point négatif : la date de la doc (2012/12/17). Est-ce encore maintenu ?
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2623
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Paquet xpicture, une alternative légère à tikz ou à pstricks

Message par gigiair »

Il est clair que pour celui qui maîtrise tikz ou pstricks, xpicture ne présente pas un intérêt énorme.
Pour qui ne veut pas s'investir dans la documentation de 1320 pages de tikz, les 67 pages de celle de xpicture sont un vrai bonheur. Pour quelqu'un comme moi qui ne réalise que très occasionnellement des graphiques, c'est un avantage considérable.
Les possibilités sont surprenantes, l'exemple de projectmbc le démontre. Il existe ainsi de nombreuses fonctions prédéfinies que l'on peut combiner par les opérations élémentaires de l'algèbre pour une réalisation quasi immédiate de représentations graphiques.
xpicture n'a pas eu un énorme succès, pas celui qu'il mérite AMHA. Le reproche le plus important que je lui fais est qu'il n'est pas supporté par AUCTeX à la façon de tikz ou pstricks. Je vais devoir me créer un fichier de style xpicture.el.

Je joins le rendu du code de projectmbc pour que l'on puisse apprécier.
cube.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
JJR.
LaTeXien migrateur.