Risposte nei forum create
-
AutoreRisposte
-
::
Ciao Enrico,grazie della risposta.
egreg9La probabilità di incappare in bachi è 0.999, secondo le ultime stime.
Ridiamoci su 😀 (per non piangere).
Dovendo/volendo usare [tt]pgfplots,[/tt] ho tolto la chiamata a [tt]etextools[/tt] e ho messo quella a [tt]etex[/tt] (come suggerito nella documentazione di [tt]pgfplots[/tt]). Così facendo compila senza problemi (per non avere una presenza di un doppione nell’indice ho tolto anche la riga [tt]\addcontentsline{toc}{chapter}{\bibname}[/tt]).
Grazie mille e buon weekend,
Marco.
::
Ciao Liverpool,intanto grazie della risposta! 🙂
LiverpoolNon ho capito bene perché, per ottenere il disegno di cui parli, vuoi partire dal quadrato con lati paralleli alla figura.
In che senso “partire”? Io semplicemente vorrei disegnare una figura come quella che ho indicato nel primo messaggio. L’angolo alpha è generico, e quindi mi sembra più comodo disegnare parallelamente alla figura e poi ruotare rispetto a un punto. Comunque, forse, non ho capito cosa intendi dire.
LiverpoolComunque, se tu ruoti il disegno di -45°, quella che prima era la diagonale ora diventa un lato, perciò quando dici [tt](A) rectangle (C)[/tt] TikZ ti disegna un rettangolo con altezza nulla, cioè un segmento. Al massimo dovresti scrivere [tt](A) rectangle (D)[/tt], ammesso che io abbia capito bene cosa ti serve.
Così facendo cambia la lunghezza del lato del rettangolo (nel caso in esame, del quadrato). Io pensavo che [tt]TikZ[/tt] disegnasse il rettangolo di diagonale AC, poi ruotasse rigidamente l’intero rettangolo di conseguenza. In effetti questo succede con i segmenti. Se venisse applicata la stessa logica, la lunghezza del segmento cambierebbe, ma non è così. Ulteriore stranezza (per chi è ignorante di [tt]TikZ[/tt] come me): se guardi l’ultimo codice che ho inserito nel messaggio precedente, noterai che in effetti il rettangolo viene ruotato correttamente (seppure, il discorso della diagonale che diventa lato varrebbe ancora), ma solo quando le coordinate sono espresse esplicitamente. Se scrivi:
`\begin{tikzpicture}
\draw [help lines] (0,0) grid (2,2);
\coordinate (A) at (0,2);
\coordinate (B) at (0,0);
\coordinate (C) at (1,1);
\draw [orange,rotate around={90:(A)}] (B) rectangle (C);
\draw [orange,rotate around={90:(A)},->] (1.2,0) — (1.2,1);
\coordinate [orange,rotate around={90:(A)},label=above:P] (P) at (1.2,.5);
\end{tikzpicture}`
vedrai che non viene più disegnato come prima. A mio avviso, una volta scritto, ad esempio, [tt]\coordinate (B) at (0,0),[/tt] dovrebbe essere uguale usare nel codice [tt](0,0)[/tt] o [tt](B).[/tt] Ma evidentemente non è così.LiverpoolTikZ non ruota le coordinate che hai definito, solo gli oggetti ai quali aggiungi l’opzione [tt]rotate[/tt].
Da quello che vedo, viene spostato il punto a cui si applica l’etichetta, ma non viene ruotato il testo (cosa che, per il mio fine, va benissimo, anzi). Giusto?
Forse è più semplice chiederti: come disegneresti tu la figura di cui ho messo il link nel primo messaggio?
Grazie mille,
Marco.
::
Ciao,lavorandoci sopra un po’ ho tratto due conclusioni (correggetemi se sbaglio):
- Confermo che le [tt]label[/tt] vengono ruotate correttamente solo se il centro di rotazione non è scritto esplicitamente;
- Ruotare [tt]rectangle[/tt] crea problemi se le coordinate non sono espresse esplicitamente. Se invece si usano le coordinate esplicite le cose funzionano.
Questo codice funziona in tutto:
`\begin{tikzpicture}
\draw [help lines] (0,0) grid (2,2);
\coordinate (A) at (0,2);
\coordinate (B) at (0,0);
\draw [orange,rotate around={90:(A)}] (0,0) rectangle (1,1);
\draw [orange,rotate around={90:(A)},->] (1.2,0) — (1.2,1);
\coordinate [orange,rotate around={90:(A)},label=above:P] (P) at (1.2,.5);
\end{tikzpicture}`Ciao,
Marco.
::
Ciao,cfiandra… ho guardato solo ora l’immagine campione, scusa…
figurati! 🙂
Dunque, ho fatto delle prove sull’ultimo esempio del mio precedente messaggio. A quanto pare le etichette vengono ruotate correttamente solo se il centro di rotazione non viene specificato esplicitamente, ma così:
`\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,0);
\coordinate (C) at (2,2);
\coordinate (D) at (0,2);
\coordinate (E) at (1,0);
\draw [rotate around={-45:(1,0)}] (0,0) — (2,0);
\draw [rotate around={-45:(1,0)}] (2,0) — (2,2);
\draw [rotate around={-45:(1,0)}] (2,2) — (0,2);
\draw [rotate around={-45:(1,0)}] (0,2) — (0,0);
\draw(2.3,0) — (2.3,2);
\draw [->,rotate around={-45:(1,0)}] (2.6,1) — (4.6,1);
\coordinate [label=225:$\tau$,rotate around={-45:(E)}] (tau) at (2.3,0);
\coordinate [label=45:$\sigma$,rotate around={-45:(E)}] (sigma) at (3.6,1);
\end{tikzpicture}`Poi, ho visto che scrivendo così:
`\begin{tikzpicture}
\draw[help lines] (0,0) grid (7,7);
\coordinate (A) at (0,0);
\coordinate (B) at (2,0);
\coordinate (C) at (2,2);
\coordinate (D) at (0,2);
%\coordinate (R) at ($(0,-1)+(canvas polar cs:radius=1cm,angle=90)$);
coordinate (R) at (0,0);
\draw [thick,rotate around={-45:(A)}] (R) rectangle ($(R)+(2,2)$);
\draw(2.3,0) — (2.3,2);
\draw [->,rotate around={-45:(R)}] (2.6,1) — (4.6,1);
\coordinate [label=225:$\tau$,rotate around={-45:(R)}] (tau) at (2.3,0);
\coordinate [label=45:$\sigma$,rotate around={-45:(R)}] (sigma) at (3.6,1);
\end{tikzpicture}`
il disegno viene tracciato correttamente; ma basta cambiare la “definizione” del punto “R”, de-commentando la prima commentando la seconda, e il rettangolo ruotato sparisce (seppure, evidentemente, il punto “R” continua ad avere coordinate x=0 e y=0).Ho provato anche a usare l’ambiente [tt]scope,[/tt] come mi ha suggerito Francesco:
`\begin{tikzpicture}
\draw[help lines] (0,0) grid (7,7);
\coordinate (A) at (0,0);
\coordinate (B) at (2,0);
\coordinate (C) at (2,2);
\coordinate (D) at (0,2);
%\coordinate (R) at ($(0,-1)+(canvas polar cs:radius=1cm,angle=90)$);
coordinate (R) at (0,0);
\begin{scope}[rotate around={-45:(A)}]
\draw [thick] (R) rectangle ($(R)+(2,2)$);
\draw(2.3,0) — (2.3,2);
\draw [->] (2.6,1) — (4.6,1);
\coordinate [label=225:$\tau$] (tau) at (2.3,0);
\coordinate [label=45:$\sigma$] (sigma) at (3.6,1);
\end{scope}
\end{tikzpicture}`
ma il risultato è sbagliato.Non riesco a capire la logica seguita da [tt]TikZ[/tt] nel ruotare. Il risultato sembra avere una certa aleatorietà. 🙁
Grazie mille intanto e buona serata,
Marco.
::
Ciao Claudio,grazie della risposta! Ci sono due problemi:
- Il disegno che ho mostrato fa parte di un disegno in cui ci sono altre parti, e solo quella è ruotata. Dichiarare una rotazione globale non mi andrebbe bene, a meno che non si possa inserire un [tt]\begin{tikzpicture} … \end{tikzpicture}[/tt] dentro un altro, ma ho provato e non funziona (seppure non dia alcun errore in fase di compilazione);
- Il link che mi hai fornito riguarda i QOC diagram, che non so cosa siano; ma a parte questo non trovo dove guardare per risolvere il mio problema. 🙁
Grazie mille e ciao,
Marco.
::
Ciao,
@Spike: molto utile quell’opzione! Ho provato a darla come opzione al pacchetto [tt]TikZ,[/tt] ma mi da errore in fase di compilazione. In ogni caso, ne terrò conto. Grazie!
@maumau: ho fatto una prova, e ti rispondo in base a quello che ho ottenuto io. Se usi il comando che hai scritto tu, non ti viene dato errore alla compilazione, ma (almeno a me) non funziona, nel senso che non viene rispettata la reale dimensione della misura (nel tuo caso, se scrivi [tt]\draw (0,0) — (0\lunghezza,2\lunghezza),[/tt] il segmento disegnato non è lungo 4 pt). Se usi la macro fornita da robitex, invece, funziona tutto alla perfezione.Ciao,
Marco.
::
Ciao Claudio,grazie della risposta e delle spiegazioni. 🙂
In realtà quello che volevo era un fattore moltiplicativo delle misure che inserisco nei disegni fatti con [tt]TikZ,[/tt] da cambiare a mio piacimento per scalare i disegni.
- Se usassi cm, pt, … il disegno avrebbe dimensioni assolute e questo non mi va molto bene;
- Se usassi misure come [tt].5\textwidth,[/tt] sarei limitato alla dimensione della gabbia testo.
Volendo slegarmi da questi limiti, cercavo come scalare le misure con un fattore moltiplicativo definito da me. Alla fine è probabile che leghi le misure che inserisco dei disegni fatti con [tt]TikZ[/tt] a [tt]\textwidth,[/tt] ma non voglio essere limitato da questa scelta, anche perché se volessi scalare il disegno mantenendo le dimensioni della gabbia del testo, dovrei riscrivere tutte le dimensioni del disegno.
Ciao,
Marco.
::
Ciao,dai l’opzione [tt]signatures[/tt] al pacchetto, come indicato a pagina 4 della documentazione del pacchetto.
Ciao,
Marco.P.S. Vedo che sei nuovo del forum. Per prima cosa benvenuto! In secondo luogo, forse non lo sai, per trovare la documentazione di un pacchetto basta aprire il terminale e digitare “texdoc nomepacchetto” e dare invio. Se usi Windows ti basta premere sul tasto “Windows”, digitare e premere invio. Ti si aprirà il pdf della documentazione.
::
Ciao Claudio,mi sono spiegato male nel primo messaggio: quello era un nome inventato da me per mostrare di che tipo di comando mi sarebbe piaciuto disporre.
Marco87… nel preambolo mi piacerebbe poter scrivere qualcosa del genere…
Volevo intendere quello che ho spiegato sopra. Dalle risposte di Roberto e Orlando mi sembrava che si fosse capito. Effettivamente, comunque, non mi era spiegato molto bene; chiedo scusa.
Ciao,
Marco.
::
Ciao,ringrazio molto sia Roberto che Claudio! Purtroppo per me Lua e Python sono come l’arabo; non ne ho la minima nozione. Per quanto riguarda TeX, anche di quello so pochissimo, ma ho sicuramente qualche chance in più. Proverò a cercare l’articolo citato da Claudio e a consultare gli Appunti di programmazione in TeX e LaTeX di Enrico, come mi è stato detto. Forse la cosa più semplice per me è quella di creare un file bat che esegua quelle operazioni di trascrizione da un file all’altro, mettendoci in mezzo i comandi [tt]TikZ.[/tt]
Intanto grazie e buona giornata,
Marco.
-
AutoreRisposte