Re: TIKZ manuale codice

#69749
Up
0
Down
::

illinguista1972″ post=68926Mi inserisco in questo filone per chiedere, con una domanda da pigro, quali sono le vere differenze tra i vari sistemi di disegno con LaTeX. So che esistono (perdonate la scrittura sicuramente sbagliata): tikz, ps-tricks, pgf, e altri. Siccome la cosa mi interessa, ma so che ci vuole moltissimo tempo e moltissime prove, vorrei saperne qualcosa di più, in particolare perché dovrei preferire un sistema a un altro e, se possibile, qual è la strada da percorrere senz’altro. So che c’è anche picture2, del quale Claudio è un grande sostenitore.

Potete anche non rispondere, vista l’indolenza della domanda. Ultimamente si è parlato molto anche di interfacce grafiche per l’uno o l’altro sistema, ma a quanto pare su Mac non c’è ancora un granché.

Ciao
Tommaso

Io ti posso rispondere solo per PSTricks e TikZ/PGF di cui ho esperienza diretta. Preferisco TikZ perché il codice è più di alto livello (ad esempio, alcune volte non hai bisogno di specificare le coordinate di un determinato oggetto, ma puoi usare dei riferimenti) e lo trovo abbastanza intuitivo. Secondo me, come conseguenza di queste proprietà, credo che il campo di applicazioni sia più ampio e la qualità dei risultati offerti sia veramente incredibile (guarda ad esempio il link di @Elrond: da quando Stefan Kottwitz si occupa di amministrare il sito, ci sono stati degli upload fantastici). Con PSTricks non so se sia possibile: quando lo usavo, forse per inesperienza, mi ci volevano tantissime righe di codice per creare diagrammi temporali per reti wireless (con pacchetti colorati diversamente rispetto alla funzione). Con TikZ si semplifica molto il lavoro, creando tipologie di oggetti come:

`dati/.style ={stile pacchetti dati}, ack/.style={stile pacchetti ack}, ecc….`
e richiamando lo stile dove serve. Ad esempio, con:

`
\begin{tikzpicture}[
calln/.style ={rectangle, draw, minimum height=0.5cm, minimum width=2cm, fill=plum!20},
burstn/.style ={rectangle, draw, minimum height=0.5cm, minimum width=1cm, fill=burntorange!20},
celln/.style ={rectangle, draw, minimum height=0.5cm, minimum width=0.5cm, fill=processblue!20},]
\foreach \y in {2,1,0}
\draw[-latex] (0,\y)–(11,\y) node

{$t$};
\node at (12,2.5) {\textsc{Call}};
\node at (12,1.5) {\textsc{Burst}};
\node at (12,0.5) {\textsc{Cell}};
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\foreach \call in {1.5,4,6.5,9}
\node[calln] at (\call,2.25) {};
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\foreach \burst in {1,3,5,7,9}
\node[burstn] at (\burst,1.25) {};
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\foreach \cell in {0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5}
\node[celln] at (\cell,0.25) {};
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\draw[thick, dashed] (3,2)–(0.5,1.5);
\draw[thick, dashed] (5,2)–(9.5,1.5);
\draw[thick, dashed] (4.5,1)–(0.25,0.5);
\draw[thick, dashed] (5.5,1)–(10.75,0.5);
\end{tikzpicture}
`
si ottiene [attachment=137]prova_tikz.jpg[/attachment].

Con questo codice PSTricks:

`
\begin{pspicture}(0,0)(12,4.5)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% linee
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\psline(0,1.3)(12,1.3)
\psline(0,2.6)(12,2.6)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% nodi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\uput(0.4,2.75){\begin{large} A \end{large}}
\uput(0.4,1.45){\begin{large} B \end{large}}
\uput(0.4,0.15){\begin{large} C \end{large}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% diagramma
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% scritte sifs
\psline{<->}(3,4.05)(3.5,4.05)
\psline{<->}(5,4.05)(4.5,4.05)
\psline{<->}(7,4.05)(7.5,4.05)
\uput(3.25,4.05){SIFS}
\uput(4.75,4.05){SIFS}
\uput(7.25,4.05){SIFS}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% SIFS
\psline[linecolor=red,linewidth=1.8pt,](1,3.9)(1,0)
%%%%%%%%%%%%%%%%
\pscustom[fillstyle=hlines,fillcolor=white,hatchcolor=redorange]{
\psline(3,3.9)(3,0)
\psline(3,0)(3.5,0)
\psline(3.5,0)(3.5,3.9)
\psline(3.5,3.9)(3,3.9)
}
\psline[linecolor=white,linewidth=2pt,](3.5,3.9)(3,3.9)
\psline[linecolor=red,linewidth=1.8pt,](3,3.9)(3,0)
\psline[linecolor=red](3,0)(3.5,0)
\psline[linecolor=red,linewidth=1.8pt,](3.5,0)(3.5,3.9)
%%%%%%%%%%%%%%%%
\pscustom[fillstyle=hlines,fillcolor=white,hatchcolor=redorange]{
\psline(4.5,3.9)(4.5,0)
\psline(4.5,0)(5,0)
\psline(5,0)(5,3.9)
\psline(5,3.9)(4.5,3.9)
}
\psline[linecolor=white,linewidth=2pt,](4.5,3.9)(5,3.9)
\psline[linecolor=red,linewidth=1.8pt,](5,3.9)(5,0)
\psline[linecolor=red,](5,0)(4.5,0)
\psline[linecolor=red,linewidth=1.8pt,](4.5,0)(4.5,3.9)
%%%%%%%%%%%%%%%%%
\pscustom[fillstyle=hlines,fillcolor=white,hatchcolor=redorange]{
\psline(7.5,3.9)(7.5,0)
\psline(7.5,0)(7,0)
\psline(7,0)(7,3.9)
\psline(7,3.9)(7.5,3.9)
}
\psline[linecolor=white,linewidth=2pt,](7.5,3.9)(7,3.9)
\psline[linecolor=red,linewidth=1.8pt,](7,3.9)(7,0)
\psline[linecolor=red](7,0)(7.5,0)
\psline[linecolor=red,linewidth=1.8pt,](7.5,0)(7.5,3.9)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% DATI 1
\pscustom[fillstyle=solid,fillcolor=skyblue]{
\pspolygon(1,2.6)(1,3.6)(3,3.6)(3,2.6)}
\uput(2,2.8){DATI}
%% DATI 2
\pscustom[fillstyle=solid,fillcolor=skyblue]{
\pspolygon(5,2.6)(5,3.6)(7,3.6)(7,2.6)}
\uput(6,2.8){DATI}
%%%% ACK 1
\pscustom[fillstyle=solid,fillcolor=goldenrod]{
\pspolygon(3.5,1.3)(3.5,2.3)(4.5,2.3)(4.5,1.3)}
\uput(4,1.5){ACK}
%%%% ACK 2
\pscustom[fillstyle=solid,fillcolor=goldenrod]{
\pspolygon(7.5,1.3)(7.5,2.3)(8.5,2.3)(8.5,1.3)}
\uput(8,1.5){ACK}
%%%% Nav C
\pscustom[fillstyle=solid,fillcolor=lavander]{
\pspolygon(1,0)(1,1)(4.5,1)(4.5,0)}
\uput(2.75,0.2){NAV}
%%%% Backoff
\pscustom[fillstyle=solid,fillcolor=limegreen]{
\pspolygon(5,0)(5,1)(9.5,1)(9.5,0)}
\uput(7.25,0.2){BACKOFF}
%%%% Dati C
\pscustom[fillstyle=solid,fillcolor=skyblue]{
\pspolygon(11.5,0)(11.5,1)(9.5,1)(9.5,0)}
\uput(10.5,0.2){DATI}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\psline[linewidth=1.4pt]{->}(3.75,-0.5)(3.75,-0.1)
\uput[d](3.75,-0.5){ricezione di un pacchetto da trasmettere}
\psline[linewidth=1.4pt]{->}(9.5,-0.5)(9.5,-0.1)
\uput[d](9.5,-0.5){backoff = 0}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% linea di C
\psline(0,0)(12,0)
\end{pspicture}
`
si ottiene
[attachment=138]prova_pstricks.jpg[/attachment]

Ciao
Claudio

Attachments:
You must be logged in to view attached files.

Go to top