Une curiosité

Tout ce qui concerne le langage Asymptote. Ce langage est utilisable sur le forum via les balises asy.
[participation réservée aux utilisateurs inscrits]
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.
Fabrice Couvreur
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 604
Inscription : samedi 18 août 2007, 01:55

[Résolu] Une curiosité

Message non lu par Fabrice Couvreur »

Bonsoir,
N'étant pas sectaire, j'apprends à utiliser PSTricks depuis quelques temps, même si je préfère Asymptote et TeXgraph.
Avec le code très simple ci-dessous, j'ai remarqué une différence au niveau de la "jonction" toit-maison (zoom à 400 %) ; il semble que ce soit plus précis avec Asymptote.

Code : Tout sélectionner

\documentclass[a4paper]{article}
\usepackage[frenchb]{babel}
\usepackage{pstricks-add}
\begin{document}
\psset{xunit=1cm,yunit=1cm}
\begin{pspicture}
  \pspolygon[fillstyle=solid,fillcolor=red](0,6)(5,10)(10,6)
  \pspolygon(0,0)(10,0)(10,6)(0,6)
  \pspolygon[fillstyle=solid,fillcolor=blue](7,0)(8.5,0)(8.5,4)(7,4)
  \pspolygon[fillstyle=solid,fillcolor=yellow](1,4)(2.5,4)(2.5,5)(1,5)
\end{pspicture}

\end{document}

Code : Tout sélectionner

unitsize(1cm,1cm);
settings.outformat="pdf";
filldraw((0,6)--(5,10)--(10,6)--cycle,red);
draw((0,0)--(10,0)--(10,6)--(0,6)--cycle);
filldraw((7,0)--(8.5,0)--(8.5,4)--(7,4)--cycle,blue);
filldraw((1,4)--(2.5,4)--(2.5,5)--(1,5)--cycle,yellow);
shipout(bbox(1cm));
Quelqu'un aurait-il une explication à cela bien que ce ne soit pas très important !
Merci.
Dernière modification par Fabrice Couvreur le mardi 19 avril 2011, 14:00, modifié 1 fois.
kojak
Modérateur général
Modérateur général
Messages : 10450
Inscription : samedi 18 novembre 2006, 19:50

Re: Une curiosité.

Message non lu par kojak »

Bonjour,

Je ne réponds pas à la question, mais pour ton code pstricks je ne vois pas le toit : pour le voir, il faut spécifier une dimension de ta pspicture.
Pas d'aide par MP.
djiblamb
Utilisateur confirmé
Utilisateur confirmé
Messages : 89
Inscription : samedi 27 septembre 2008, 10:58

Re: Une curiosité

Message non lu par djiblamb »

Bonjour.

PSTricks utilise le paramètre dimen pour les objets graphiques fermés (voir doc page 25). Ce paramètre peut être positionné à outer (valeur par défaut), middle ou inner. On peut donc rajouter dans le psset de départ un dimen=middle pour améliorer le rendu ; mais ce n'est pas encore idéal.
Pour encore plus de précision, diminuer l'épaisseur du tracé (remplacer le linewidth=0.8pt, qui est le défaut, par linewidth=0.5pt) et remplacer le pspolygon définissant le toit par des psline. Voici le code correspondant (au fait, pas besoin de pstricks-add, ici pstricks doit suffire) :

Code : Tout sélectionner

\documentclass[a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{pstricks}

\begin{document}
\psset{xunit=1cm,yunit=1cm,dimen=middle,linewidth=0.5pt}
\begin{pspicture}(10,10)
  \pspolygon[linestyle=none,fillstyle=solid,fillcolor=red](0,6)(5,10)(10,6)
  \psline (0,6)(5,10)(10,6)
  \psframe (0,0)(10,6)
  \pspolygon[fillstyle=solid,fillcolor=blue](7,0)(8.5,0)(8.5,4)(7,4)
  \pspolygon[fillstyle=solid,fillcolor=yellow](1,4)(2.5,4)(2.5,5)(1,5)
\end{pspicture}

\end{document}
djib
Fabrice Couvreur
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 604
Inscription : samedi 18 août 2007, 01:55

Re: Une curiosité

Message non lu par Fabrice Couvreur »

Bonjour,
On est très proche du rendu obtenu avec Asymptote.
djiblamb a écrit :PSTricks utilise le paramètre dimen pour les objets graphiques fermés (voir doc page 25). Ce paramètre peut être positionné à outer (valeur par défaut), middle ou inner. On peut donc rajouter dans le psset de départ un dimen=middle pour améliorer le rendu ; mais ce n'est pas encore idéal.
Je ne comprends pas trop le rôle de ce paramètre.
Merci
djiblamb
Utilisateur confirmé
Utilisateur confirmé
Messages : 89
Inscription : samedi 27 septembre 2008, 10:58

Re: Une curiosité

Message non lu par djiblamb »

Voir pstricks-doc à la page 25 :
«It determines whether the dimensions refer to the inside, outside or middle
of the boundary. The difference is noticeable when the linewidth is large:»

Code : Tout sélectionner

\documentclass[a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{pstricks}

\begin{document}
\psset{linewidth=.25cm}
\psgrid[griddots=10,subgriddiv=0](0,0)(4,3)
\psframe[dimen=inner](0,0)(2,1)
\psframe[dimen=middle](0,2)(2,3)
\psframe[dimen=outer](3,0)(4,3)

\end{document}
Voir en particulier la différence entre le rectangle qui est en bas à gauche et celui qui est juste au-dessus.

djib
Fabrice Couvreur
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 604
Inscription : samedi 18 août 2007, 01:55

Re: Une curiosité

Message non lu par Fabrice Couvreur »

Re,
Merci, c'est compris !
Répondre