Risposte nei forum create
-
AutoreRisposte
-
15 Maggio 2012 alle 14:47 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #72760::
illinguista1972″ post=72878Infatti l’ultima colonna di questo istogramma deve essere 2011, ma per ottenerla sono costretto a mettere anche 2012 con valore 0. Avete qualche idea del perché?
La risposta è a pag. 59 del pgfmanual alla voce [tt]ybar interval[/tt] (io non saprei darla meglio…). Per il secondo codice, non so bene cosa intendi con “la sintassi è corretta”, ma penso di sì. Più che altro credo che dovremmo metterci d’accordo sull’ordine delle chiavi, per comodità, anche se in generale l’ordine non è essenziale.
Domanda: ma siete sicuri, tu e Lorenzo, che il titolo debba terminare con il punto fermo?Ciao
::
Hai ragione. E’ colpa mia. La questione è che quando le linee sono inclinate, una parte delle estremità sporge orizzontalmente, perché lo spessore non è nullo e la lunghezza di linea è calcolata a metà spessore. TikZ, per unire i due tratti obliqui, li prolunga finché i bordi sporgenti della linea non si intersecano. Se alfa è l’inclinazione della linea, allora la parte prolungata sporgerà orizzontalmente di 0.5cosec(alfa)\pgflinewidth, che nel nostro caso è 1.30656297\pgflinewidth, che si può arrotondare un po’ date le modeste dimensioni dello spessore di linea. Così dovrebbe andare
`
\documentclass{article}
\usepackage{tikz}% Codice per lo stile della freccia
\pgfarrowsdeclare{freccia45}{freccia45}
{
\pgfarrowsleftextend{0pt}
\pgfarrowsrightextend{\pgfgetarrowoptions{freccia45}+1.307\pgflinewidth}
}
{
\pgfmathsetlengthmacro{\lun}{\pgfgetarrowoptions{freccia45}/cos(22.5)}
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{\pgfgetarrowoptions{freccia45}}{0pt}}{\pgfqpointpolar{157.5}{\lun}}}
\pgfpathlineto{\pgfqpoint{\pgfgetarrowoptions{freccia45}}{0pt}}
\pgfpathlineto{\pgfpointadd{\pgfqpoint{\pgfgetarrowoptions{freccia45}}{0pt}}{\pgfqpointpolar{-157.5}{\lun}}}
\pgfpathclose
\pgfusepathqstroke
}
\def\miodef{0.4cm} % imposta il valore utilizzato per default
\pgfsetarrowoptions{freccia45}{\miodef} % valore utilizzato se /punta non viene invocato
\pgfkeys{/punta/.default=\miodef, /punta/.code={\pgfsetarrowoptions{freccia45}{#1}}}\begin{document}
\begin{tikzpicture}
\draw [-freccia45, /punta=3pt] (0,3) — (3,3);
\draw [-freccia45, /punta] (0,2) — (3,2);
\draw [-freccia45, /punta=1cm] (0,1) — (3,1);
\draw [-freccia45] (0,0) — (3,0);
\draw (3,0) — (3,3);
\end{tikzpicture}`
15 Maggio 2012 alle 8:41 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #7274215 Maggio 2012 alle 7:33 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #72740::
Credo che più che una funzione sarebbe interessante importare dei dati sperimentali ottenuti con qualche software di analisi. @OldClaudio qualche giorno fa parlava di PSpice; ci aggiungo LabView; per far contento Tommaso si potrebbe inserire la densità spettrale di potenza del suono di uno strumento; ma per essere un po’ più originali del solito, si potrebbe inserire qualche grafico che abbia a che fare con la biologia, la chimica o meglio ancora la medicina, con i dati ricavati tramite un software specifico del campo. Che ne dici? Ovviamente serve qualcuno che metta a disposizione una serie di dati del genere…Ciao
P.S. Dimenticavo: non mettere “unbounded coords=jump” nel grafico della zeta, tanto non serve e confonde le idee al principiante.
14 Maggio 2012 alle 16:21 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #7273814 Maggio 2012 alle 14:58 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #7273514 Maggio 2012 alle 14:12 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #72733::
Il codice che segue è stato realizzato modificando la definizione dello stile [tt]open triangle 45[/tt]. La lunghezza della punta della freccia non dipende più dallo spessore di linea, ma viene passata direttamente all’interno del comando [tt]\draw[/tt] tramite la chiave [tt]/punta[/tt] (nota la barra dritta). Puoi assegnare esplicitamente un valore, oppure usare quello di default o non invocare proprio [tt]/punta[/tt] (in quest’ultimo caso viene utilizzato il valore assegnato nella riga che incomincia con [tt]\pgfsetarrowoptions[/tt]. Penso che gli esempi siano chiari.
`
\documentclass{article}
\usepackage{tikz}% Codice per lo stile della freccia
\pgfarrowsdeclare{freccia45}{freccia45}
{
\pgfarrowsleftextend{0pt}
\pgfarrowsrightextend{+\pgfgetarrowoptions{freccia45}}
}
{
\pgfmathsetlengthmacro{\lun}{\pgfgetarrowoptions{freccia45}/cos(22.5)}
\pgfsetdash{}{+0pt}
\pgfsetmiterjoin
\pgfpathmoveto{\pgfpointadd{\pgfqpoint{\pgfgetarrowoptions{freccia45}}{0pt}}{\pgfqpointpolar{157.5}{\lun}}}
\pgfpathlineto{\pgfqpoint{\pgfgetarrowoptions{freccia45}}{0pt}}
\pgfpathlineto{\pgfpointadd{\pgfqpoint{\pgfgetarrowoptions{freccia45}}{0pt}}{\pgfqpointpolar{-157.5}{\lun}}}
\pgfpathclose
\pgfusepathqstroke
}
\def\miodef{0.4cm} % imposta il valore di default
\pgfsetarrowoptions{freccia45}{\miodef} % valore utilizzato se /punta non viene invocato
\pgfkeys{/punta/.default=\miodef, /punta/.code={\pgfsetarrowoptions{freccia45}{#1}}}\begin{document}
\begin{tikzpicture}
\draw [-freccia45, /punta=3pt] (0,3) — (3,3);
\draw [-freccia45, /punta] (0,2) — (3,2);
\draw [-freccia45, /punta=1cm] (0,1) — (3,1);
\draw [-freccia45] (0,0) — (3,0);
\end{tikzpicture}
\end{document}`
Ciao
14 Maggio 2012 alle 6:28 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #72729::illinguista1972″ post=72804in base a cosa pgfplots mette le tacche di marcatura sugli assi? Mi spiego: se non metto nessuna opzione, ottengo un riferimento vuoto con tacche messe in un certo modo (a 0.2 di distanza tra loro). Ma appena do un’opzione ad axis, il tutto cambia. Perché? È giusto dire che le tacche vengono visualizzate distanti tra loro l’intervallo ottimale in base al tipo e alla grandezza del grafico? Non riesco a capirlo.
Ciao Tommaso, spero che ti accontenti di una risposta qualitativa. Ti dico quello che ho capito io, ma non sono “uno che se ne intende”.
Il passo di tacca (P) dipende:
– dalla dimensione dell’asse (L);
– dalla dimensione fisica del grafico nella direzione dell’asse (G);
– da un parametro che definisce la massima distanza consentita tra due tacche consecutive (D).In particolare, il passo aumenta con L e con D e diminuisce con G.
Definito “numero di tacche desiderato” il valore N=round(G/D), si può dire semplificando che P=L/N. Siccome non tutti i valori che si ottengono in questo modo sono gradevoli (pensa se esce P=48), il risultato viene arrotondato al più vicino elemento in un insieme ristretto di valori possibili come {1, 1/2, 1/5, 1/10} dell’ordine di grandezza del grafico. Questo semplificando molto e limitatamente all’asse in scala naturale (non logaritmico).illinguista1972″ post=72804Come si fa a scegliere l’intervallo tra le tacche? Con xtick e ytick?
Sì… O meglio, in questo modo scegli direttamente i valori delle tacche. Puoi scegliere implicitamente il passo definendo le prime due tacche ed usando i punti di sospensione, ad esempio [tt]xtick={1,2.5,…,10}[/tt] se vuoi un passo di 1.5.
::
Se ho fatto bene i calcoli, la relazione tra il valore di [tt]shorten[/tt] e la larghezza di linea della punta della freccia è:[tt]4.6025+3.58125\pgflinewidth[/tt]
Se si riesce a stabilire una relazione tra l’opzione [tt]scale[/tt] e la larghezza di linea della punta della freccia, il gioco è fatto. Oppure devi assegnare un valore di [tt]line width[/tt] (anche indirettamente tramite le chiavi [tt]thick[/tt] e compagnia bella). Faccio notare che questo metodo modifica lo spessore della linea della punta della freccia e non so è quello che cerchi.
Secondo me il modo in cui TikZ definisce le punte delle frecce è qualcosa di incomprensibile.
::
Ieri mi sono fidato delle tue parole, quando hai detto che con [tt]scope[/tt] il disegno non funzionava, ma non è così. Ti allego una nuova versione del codice, migliore perché tu definisci un ambiente (con [tt]scope[/tt]) e ruoti tutto l’ambiente in una sola volta, anziché ruotare gli oggetti ad uno ad uno.
`
\begin{tikzpicture}
\def\lato{2} % lunghezza del lato del quadrato
\def\alfa{-45} % angolo di rotazione
\coordinate (O) at ($(0,\lato/2)$); % centro di rotazione
\begin{scope}[rotate around={\alfa:(O)}]
\draw (0,0) rectangle +(\lato,\lato);
\draw [-left to] ($(\lato,\lato) + (0.5,0)$) — ($(\lato,0) + (0.5,0)$);
\draw [->] ($(\lato,\lato/2) + (1,0)$) — ($(\lato,\lato/2) + (1+\lato,0)$);
\draw ($(\lato,0) + (0.5,-2ex)$) node {$\tau_{r\theta}$};
\draw ($(\lato,\lato/2) + (1+\lato/2,+2ex)$) node {$\sigma_r$};
\end{scope}
\end{tikzpicture}`
Ho capito le tue osservazioni. A me sembra che il problema siano le coordinate implicite nella definizione di [tt]rectangle[/tt], non il centro di rotazione.Ciao
::
@Marco, come Claudio avevo capito male, perché tu nel codice hai chiamato A uno dei vertici del quadrato, mentre nella figura A è il centro di rotazione.
Domani rispondo alle tue osservazioni.Marco87″ post=72735Forse è più semplice chiederti: come disegneresti tu la figura di cui ho messo il link nel primo messaggio?
Io farei così:
`
\begin{tikzpicture}
\def\lato{2} % lunghezza del lato del quadrato
\def\alfa{-45} % angolo di rotazione
\tikzstyle{ruota}=[rotate around={\alfa:($(0,0)+(0,\lato/2)$)}]\draw [ruota] (0,0) rectangle +(\lato,\lato);
\draw [-latex', ruota] ($(\lato,\lato) + (0.5,0)$) — ($(\lato,0) + (0.5,0)$);
\draw [-latex', ruota] ($(\lato,\lato/2) + (1,0)$) — ($(\lato,\lato/2) + (1+\lato,0)$);
\draw [ruota] ($(\lato,0) + (0.5,-2ex)$) node {$\tau_{r\theta}$};
\draw [ruota] ($(\lato,\lato/2) + (1+\lato/2,+2ex)$) node {$\sigma_r$};
\end{tikzpicture}`
Avrei potuto inserire i nodi delle etichette alla fine dei comandi per le frecce, ma le opzioni tipo [tt]below[/tt] ecc… avrebbero dato problemi (poi studio se si può semplificare).Ciao
-
AutoreRisposte