Page 1 sur 1

[Résolu] Une curiosité

MessagePosté: Lundi 18 Avril 2011, 23:44
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.

Re: Une curiosité.

MessagePosté: Mardi 19 Avril 2011, 07:04
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.

Re: Une curiosité

MessagePosté: Mardi 19 Avril 2011, 10:14
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

Re: Une curiosité

MessagePosté: Mardi 19 Avril 2011, 10:45
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

Re: Une curiosité

MessagePosté: Mardi 19 Avril 2011, 11:47
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

Re: Une curiosité

MessagePosté: Mardi 19 Avril 2011, 12:59
par Fabrice Couvreur
Re,
Merci, c'est compris !