Re: orientamento frecce tikz

#81291
Up
0
Down
::

MngSpaghetti” post=80520Salve a tutti,
ho un problema con l’orientamento delle frecce per un diagramma (la mia ossessione!)…
nel mio caso se le frecce sono rette e quindi collegare blocchi vicini nessun problema… (come per coniugare i blocchi gas e acqua)
se però devo spezzare la retta (collegamento non in diagonale) per collegare due blocchi a due livelli diversi (acqua solido) la testa della freccia mi rimane rivolta verso l’alto o verso il basso…
`
\begin{figure}[htbp]
\centering
\tikzstyle{solido}=[rectangle, rounded corners, fill=orange!50, drop shadow, text=white, minimum height=3cm, minimum width=4cm]
\tikzstyle{acqua}=[rectangle, rounded corners, fill=blue!50, drop shadow, text=white, minimum height=1.8cm, minimum width=4cm]
\tikzstyle{gas}=[rectangle, rounded corners, fill=blue!10, drop shadow, text=white, minimum height=1.8cm, minimum width=4cm]
\begin{tikzpicture}[node distance=1.5cm]
\node (solido) [solido] {\textit{Fase Solida}};
\node (AuxNode01) [text width=0.5cm, below=of solido] {};
\node (acqua) [acqua, left=of AuxNode01] {\textit{Fase Liquida}};
\node (gas) [gas, right=of AuxNode01] {\textit{Fase Gassosa}};
\draw [->] (solido.west) (-2,-0.6) — ++ (0,0) -| ([xshift=0.6cm]acqua.north);
\draw [->] ([xshift=-0.6cm]acqua.north) — ++ (0,2.8) -| ([yshift=0.6cm]solido.west);
\draw [->] (solido.east) (2,0.6) — ++ (0,0) -| ([xshift=0.6cm]gas.north);
\draw [->] ([xshift=-0.6cm]gas.north) — ++ (0,1.6) -| ([yshift=-0.6cm]solido.east);
\draw [->] ([yshift=0.6cm]acqua.east) — ([yshift=0.6cm]gas.west);
\draw [->] ([yshift=-0.6cm]gas.west) — ([yshift=-0.6cm]acqua.east);
\end{tikzpicture}
\caption{Le Tre Fasi del Suolo}
\label{4}
\end{figure}
`

grazie anticipatamente a tutti per la solita disponibilità e pazienza
peppe

Hai fatto tutto bene, ma c’è un piccolo errore. 🙂

Con il simbolo: `-|` si disegna un segmento dal punto di partenza in orizzontale [tt] – [/tt] fino alla coordinata che ha la stessa ascissa del punto finale e in seguito verticale [tt] | [/tt] per raggiungere il punto finale.

Invece, con il simbolo: `|-` si disegna un segmento dal punto di partenza in verticale [tt] | [/tt] fino alla coordinata che ha la stessa ordinata del punto finale e in seguito orizzontale [tt] – [/tt] per raggiungere il punto finale.

In sostanza bastava cambiare verso nei due casi che generavano problemi. Un esempio minimo corretto (con [tt]\tikzset[/tt] al posto del deprecato [tt]\tikzstyle[/tt] e con le mie frecce preferite):`
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shadows, positioning}

\begin{document}

\tikzset{solido/.style={rectangle, rounded corners, fill=orange!50, drop shadow, text=white, minimum height=3cm, minimum width=4cm}}
\tikzset{acqua/.style={rectangle, rounded corners, fill=blue!50, drop shadow, text=white, minimum height=1.8cm, minimum width=4cm}}
\tikzset{gas/.style={rectangle, rounded corners, fill=blue!10, drop shadow, text=white, minimum height=1.8cm, minimum width=4cm}}
\begin{tikzpicture}[node distance=1.5cm,>=stealth]
\node (solido) [solido] {\textit{Fase Solida}};
\node (AuxNode01) [text width=0.5cm, below=of solido] {};
\node (acqua) [acqua, left=of AuxNode01] {\textit{Fase Liquida}};
\node (gas) [gas, right=of AuxNode01] {\textit{Fase Gassosa}};
\draw [->] (solido.west) (-2,-0.6) — ++ (0,0) -| ([xshift=0.6cm]acqua.north);
\draw [->] ([xshift=-0.6cm]acqua.north) — ++ (0,2.8)|-([yshift=0.6cm]solido.west);
\draw [->] (solido.east) (2,0.6) — ++ (0,0) -| ([xshift=0.6cm]gas.north);
\draw [->] ([xshift=-0.6cm]gas.north) — ++ (0,1.6) |- ([yshift=-0.6cm]solido.east);
\draw [->] ([yshift=0.6cm]acqua.east) — ([yshift=0.6cm]gas.west);
\draw [->] ([yshift=-0.6cm]gas.west) — ([yshift=-0.6cm]acqua.east);
\end{tikzpicture}

\end{document}
`Ciao
Claudio

Go to top