Re: plot con linee di spessore discendente

#37725
Up
0
Down
::

Uso PSTricks per disegnare una famiglia di epicicloidi: esiste un modo per far sì che linewidth diventi sempre minore col procedere dei plot (in modo da non “sovraccaricare il disegno e renderlo di lettura meno difficile, oltre che per dare un effetto grafico particolare)?

Ecco come ho provato io (ma è ovvio che non funzioni, TeX non “sa” fare il conto all’interno di \psset…)

`\begin{pspicture}(-3,-3)(3,3)
\multido{\r=1.+.75}{12}{
\def\l{1/\r}
\psset{\linewidth=\l pt}
\parametricplot[algebraic,linecolor=blue,,plotpoints=400]{-3.14}{3.14}{%
1/\r*((\r +1)*cos(t) – cos((\r +1)*t)) |
1/\r*((\r +1)*sin(t) – sin((\r +1)*t))
}}
\end{pspicture}`

`\begin{pspicture}(-3,-3)(3,3)
\multido{\r=1.+.75}{12}{
\psset{linewidth=%
\number\numexpr(65536*65536/(\dimexpr\r pt))\relax sp}
\parametricplot[algebraic,linecolor=blue,,plotpoints=400]{-3.14}{3.14}{%
1/\r*((\r +1)*cos(t) – cos((\r +1)*t)) |
1/\r*((\r +1)*sin(t) – sin((\r +1)*t))
}}
\end{pspicture}`
Spiegazione: \dimexpr dentro un \numexpr ritorna la dimensione in unità di punti scalati (65536sp = 1pt). La divisione 65536/\r così eseguita darebbe il fattore giusto, ma prima moltiplico ancora per 65536 perché altrimenti TeX tronca. Poi uso questo numero come dimensione in sp.

Ciao
Enrico

Go to top