Re: Rotazione in TikZ

#73595
Up
0
Down
::


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.

Go to top