Re: Il disegno programmato nell’Arte di scrivere con LaTeX

#72617
Up
0
Down
::


Ricopio anche io un precedente post, migliorando e aggiungendo ulteriori osservazioni.

Post vecchio

Ho fatto solo una delle figure sul bilanciamento dei pesi. Ci ho messo una decina di minuti (ma era per ritrovare un pezzo di codice utile al colore ).

Ecco il codice (esempio compilabile da subito con TeXLive):

`
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{center}
\begin{tikzpicture}
% definizione colore di riempimento
\tikzset{myfillcolor/.style ={fill=#1, draw=none}}
% definizione delle caratteristiche del nodo
\tikzset{mynode/.style={rectangle,draw, minimum width=0.5cm, minimum height=0.5cm}}
%—-
% inserimento nodi orizzontali
\foreach \x in {0.5,1.5,…,5.5}
\node[mynode,myfillcolor=black] at (\x,0.75) {};
% inserimento nodi vertical
\foreach \y in {-0.6,-1.2,…,-3.6}
\node[mynode,myfillcolor=black]at (3,\y) {};
% inserimento path che collega i primi due nodi orizzontali
\draw (0.5,0.75)–(0.5,1.5)–(5.5,1.5)–(5.5,0.5);
% inserimento label A B C
\foreach \t/\text in {{(0.5,1.5)/A},{(3,1.5)/C},{(5.5,1.5)/B}}
\node[above]at \t {\text};
% inserimento path che collega B con i nodi verticali
\draw (3,1.5)–(3,-0.35);
\end{tikzpicture}
\end{center}
\end{document}
`
Il risultato che si ottiene è:

[attachment=235]Immagine.jpg[/attachment]

Il codice di cui parlavo è:

`\tikzset{myfillcolor/.style ={fill=#1, draw=none}}`
Quando si definisce un nodo, tra le opzioni, questo “comando” permette di modificare il colore utilizzando le stesse impostazioni di forma. Mi spiego: se voglio definire un quadrato nero con:

`
\tikzset{mynode/.style={rectangle,draw, minimum width=0.5cm, minimum height=0.5cm,color=black}}
`
successivamente non posso colorare mynode di grigio. Con quel comando si:

`
\node[mynode,myfillcolor=black]at (0,0) {};
\node[mynode,myfillcolor=blue]at (5,5) {};
`
Al di là della piccola spiegazione tecnica, si può notare come il codice non sia scritto alla cieca: c’è una logica, come c’è una logica per redigere un documento, scrivere un file di stile o una classe.

Con questo intervento non voglio convincere Lorenzo, o dimostrare qualcosa… ma la sfida (riprodurre una figura) era interessante. 😆

P.S. Rispetto alla figura originale, la mia ha una differenza: le tre label (A, B, C) non erano allineate, nella mia sì. Una seconda differenza è la distanza che separa i pesi verticali: l’ho impostata forse troppo grande.

Fine post vecchio.

Affrontando come prima cosa l’argomento grafici, io non sono un matematico e non conosco Mathematica, però mi sento di dire che userei pgfplots per qualsiasi lavoro. Ci si dimentica abbastanza spesso che, in caso non sia possibile creare il grafico in modo diretto con i comandi pgfplots, esiste sempre Matlab. È vero che questo comporta il fatto di dover conoscere/imparare un linguaggio diverso, però mi sento di affermare che non sia la fine del mondo. Una volta creato il grafico con Matlab, si lancia la libreria matlab2tikz.m ed automaticamente viene generato il codice TikZ (pgfplots per essere precisi) relativo per il grafico. Con la stessa precisione e qualità.

Considerando ora i grafici qualitativi, la cosa più importante è distinguere quale sia il target finale. Se il caso è:

Ricordo una tesi di didattica della fisica in cui (non chiedermi perché!) c’era bisogno di inserire una piazza con omini e donnine stilizzati, che interagivano tra loro in modo complesso, con freccine, faccine, simboli vari.

forse non il caso di usare TikZ, specialmente se l’utente vede il codice per la prima volta. In ogni caso, si badi che non ho detto: “non si può fare”. Ci vorrebbe un bel po’ di tempo e di pazienza, ma alla fine ci si riuscirebbe. Ogni volta che si parla di come creare disegni complicati con TikZ mi viene in mente un disegno, stupendo, pubblicato su TeXample. Ecco il link (buona visione 😉 ). Su questo punto concordo con Lorenzo: per il neofita non è la soluzione migliore.

Secondo me, in conclusione, molto dipende dalla curiosità e dalla voglia di un utente nel voler imparare. Se si è interessati, mi sento di affermare che con il tempo i risultati sono premianti; per questo motivo sono favorevole ad inserire nell’Arte la conclusione di Lorenzo, ma non a riportare spiegazioni sul codice come propone @Liverpool. Credo sia sufficiente dare i riferimenti e lasciare agli interessati l’onere di documentarsi meglio.

Un ultimo commento su:

Con TikZ (o pict2e) c’è una questione che bisogna inevitabilmente affrontare: è necessario conoscere almeno le basi della geometria analitica e non è detto che tutti la conoscano o se la ricordino. Per il disegno dei secchi la maggior parte del tempo l’ho persa nel ricavare le coordinate del pelo libero del liquido in funzione della percentuale di riempimento (prerequisito: equazione della retta per due punti).

È vero, ma dipende molto dalla precisione che vuoi nel tuo disegno. Tu hai scritto la soluzione “perfetta”, sia dal punto di vista del codice che del risultato finale. Se uno si “accontenta” può definire il secchio e il contenuto solo in termini di posizione (x,y) e successivamente a) ricopiare il codice modificando le coordinate, b) usando gli “shift”, ossia spostando le coordinate dei nuovi secchi in termini di distanza dal primo, di riferimento.

Ciao
Claudio

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

Go to top