Re: Un particolare grafo ad albero

#94789
Up
0
Down
::

zambu” post=94385Salve,

Ho bisogno di realizzare dei grafi ad albero che assomiglino a questo:

http://speedy.sh/Pkc4D/provaalbero01.png

Questo l’ho fatto con Dia spero che dia l’idea del risultato che vorrei ottenere anche se l’esportazione in .png ha dato qualche problema sovrapponendo dei caratteri.

Studiandomi e modificando gli esempi che ho trovato in rete ho ottenuto questo:

`
\usetikzlibrary{shapes.gates.logic.US,positioning,shadows,arrows}
%\usetikzlibrary{shapes.gates.logic.US,trees,positioning,arrows}

\begin{document}
\begin{center}
\begin{tikzpicture}[
numero/.style={rectangle, draw=none, rounded corners=1mm, fill=white, drop shadow,
text centered, anchor=north},
operatore/.style={and gate US,thick,draw,fill=white,rotate=90,
anchor=north,yshift=3mm},
level distance=1.5cm, growth parent anchor=south
]
\node (Fact01) [numero] {$30$} [-]
child{ [sibling distance=9cm]
node (State01) [operatore] {$+$}
child{
node (Fact02) [numero] {$20$}
child{ [sibling distance=4cm]
node (State02) [operatore] {$-$}
child{
node (Fact03) [numero] {$28$}
}
child{
node (Fact04) [numero] {$8$}
child{ [sibling distance=1.2cm]
node (State04) [operatore] {$:$}
child{
node (Fact05) [numero] {$24$}
}
child{
node (Fact09) [numero] {$3$}
}
}
}
}
}
child{ [sibling distance=4cm]
node (Fact10) [numero] {$10$}
child{
node (State10) [operatore] {$+$}
child{
node (Fact11) [numero] {$7$}
}
child{
node (Fact12) [numero] {$3$}
child{
node (State12) [operatore] {$:$}
child{
node (Fact13) [numero] {$12$}
}
child{
node (Fact14) [numero] {$4$}
}
}
}
}
}
}
;

\end{tikzpicture}
\end{center}
\end{document}
`

Ma è abbastanza distante da ciò che mi propongo.

In particolare vorrei:

* che la radice dell’albero sia in basso;
* che le foglie siano allineate in alto;
* che il simbolo con l’operatore sia appoggiato al rettangolo che contiene il risultato;
* che il testo contenuto nell’operatore non sia ruotato.

Ringrazio per l’attenzione.

Daniele

Secondo me la struttura è sbagliata: con una matrice avresti meno problemi. Comunque sia:

* che la radice dell’albero sia in basso; -> cerca [tt]growth’=up[/tt] nel manuale;
* che le foglie siano allineate in alto; -> dipende dalla loro dimensione; puoi comunque giocare sulle dimensioni dei nodi nell’ultimo livello;
* che il simbolo con l’operatore sia appoggiato al rettangolo che contiene il risultato; -> bisogna fare un attimo attenzione a modificare le distanze solo dei nodi operatori;
* che il testo contenuto nell’operatore non sia ruotato. -> opzione [tt]shape border rotate[/tt] anziché [tt]rotate[/tt].

Ciao
Claudio

Go to top