- Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 18 anni, 1 mese fa da .
-
Topic
-
Ciao a tutti,ho un problema con PStricksche vorrei sottoporvi. Non uso da molto il pacchetto, fino ad ora ho esportato grafici in eps da Matlab o sfruttato disegni in Adobe Illustrator anch’essi esportati in eps (per compilare in PDFLaTeX li ho poi convertiti in PDF con eps2pdf). Volendo imparare ad usare questo pacchetto, mi sono messo ad applicare ai miei casi alcuni degli esempi sul manuale di PSTricks. La funzione \psclip dovrebbe ritagliare l’immagine secondo dei contorni stabiliti. Vi posto il mio codice dove confronto l’esempio del manuale con il mio caso:
`
\documentclass[a4paper,11pt]{book}
\usepackage{fourier}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{psfrag}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage{pst-plot}\begin{document}
\thispagestyle{empty}
\psset{xunit=5mm,yunit=4mm}% 1:20, or =0.1mm for 1:10
\begin{pspicture}(0,0)(24,10)
\psgrid[subgriddiv=1,griddots=10,gridlabels=7pt](0,0)(24,10)%clip mio
\psclip{%
\pscustom[linestyle=none]{%
\pscurve[linecolor=blue]{-}(17,4)(16,6)(14.5,8)(13,9)(10,8)(8,5)
\lineto(20,0)}
\pscustom[linestyle=none]{%
\pscurve[linecolor=black]{-}(17,4)(15,5.5)(13,6)(8,5)
\lineto(0,0)}}
\psframe*[linecolor=red](8,4)(17,10)
\endpsclip
\pscurve[linecolor=black]{-}(0,0.8)(4,1.3)(5,1.8)(7,3.4)(8,5)(13,6)(15,5.5)(17,4)(19,1.8)(20,1.3)(24,0)
\pscurve[linecolor=blue]{-}(4,0)(6,2)(8,5)(10,8)(13,9)(14.5,8)(16,6)(17,4)(18,2)(20,0)%clip esempio manuale
\psclip{%
\pscustom[linestyle=none]{%
\psplot{.5}{4}{2 x div}
\lineto(4,4)}
\pscustom[linestyle=none]{%
\psplot{0}{3}{3 x x mul 3 div sub}
\lineto(0,0)}}
\psframe*[linecolor=gray](0,0)(4,4)
\endpsclip
\psplot[linewidth=1.5pt]{.5}{4}{2 x div}
\psplot[linewidth=1.5pt]{0}{3}{3 x x mul 3 div sub}
\end{pspicture}
\end{document} `Nell’esempio da manuale sono definite 2 curve attraverso \psplot ma le loro linee, che servono solo a delimitare l’area da clippare, dovrebbero non vedersi per l’opzione linestyle=none (i 2 psplot sono infatti poi ripetuti con linewidth 1.5pt per rendere le curve visibili alla fine). Con \psclip si ritaglia un’area tra queste due curve che poi risulta colorata di grigio in forza al comando \psframe*. Il risultato grafico consiste nel colorare di grigio l’area racchiusa tra le due curve, una concava ed una convessa, che si intersecano in 2 punti.
Nel mio esempio, uso \pscurve al posto di \psplot, ma secondo il manuale non dovrei avere problemi. Con pscurve ottengo una curva per interpolazione sui punti indicati quindi buona quanto quelle prodotte da psplot. Nel mio caso ho però due “quasi parabole” con concavità rivolta al basso.
Una zona colorata la ottengo ma non come desiderata (dovrei colorare l’area tra i due punti di intersezione di un colore e – ma questo non è presente nel codice postato – le aree racchiuse tra i due grafici al di fuori dei punti di intersezione con un altro colore)…non riesco a capire il motivo per cui non funziona come voluto, ma penso che il problema stia nell’uso dei \lineto che in un certo senso “chiudono” le curve da clippare..ma questa parte proprio non mi è chiara..e in effetti i miei \lineto li ho definiti su coordinate sparate un po’ a caso per vedere che effetto ottenevo.
Se avete un’idea o un riferimento ad un manuale più preciso sull’uso di psclip (che da manuale pstrick non è proprio chiarissimo) mi date una mano,
Grazie a tutti,
Cristiano
- Devi essere connesso per rispondere a questo topic.