Re: Rappresentare graficamente: smartdiagra, tkiz o altro?

#93725
Up
0
Down
::


Io farei qualcosa di diverso perché, come dicevo, non mi piace la freccia in secondo piano.

La soluzione è una versione 2.0 di quanto proposto in Connecting nodes with brace in TikZ, un tipo di diagramma che sarà sicuramente inserito nella prossima versione di smartdiagram.

Codice:`
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,shapes.arrows,decorations.pathreplacing,shadows}

% list of keys
\newif\ifbraceon
\pgfkeys{/tikz/.cd,
arrow color/.store in=\arrowcol,
arrow color=green!80!blue,
items distance/.store in=\itemdistance,
items distance=3cm,
border color/.store in=\bordercol,
border color=green!80!black,
fill color/.store in=\fillcol,
fill color=green!80!lime!20,
brace color/.store in=\bracecol,
brace color=green!80!blue,
brace distance/.store in=\bracedistance,
brace distance=5pt,
display brace/.is if=braceon,
display brace=true
}

% list of styles
\tikzset{my arrow/.style={
single arrow, draw, minimum height=0.5cm,
minimum width=0.05cm,
single arrow head extend=0.1cm
},
module/.style={
rounded corners,
draw=\bordercol,
fill=\fillcol,
minimum height=1cm,
minimum width=1.5cm,
text width=1.45cm,
align=center,
general shadow={shadow yshift=-.4ex,opacity=.4, fill=black!50, every shadow},
},
brace/.style={
decoration={brace,raise=\bracedistance,amplitude=0.75em},
decorate,
draw=\bracecol,
very thick,
}
}

% arrows between two modules
\newcommand{\guparrow}{
node[my arrow,top color=\arrowcol!10,bottom color=\arrowcol,midway] {}
}

% bracediagram:
% #1 options, optional argument
% #2 list of items,
% #3 brace comment
\newcommand{\braceddiagram}[3][]{
\begin{tikzpicture}[#1]% here we can pass the options to customize the colors
% counting all the items to be displayed
\foreach \items [count=\xi] in {#2}{\global\let\maxnumitem\xi}

\foreach \items [count=\xi] in {#2}{%
\path let
\n1={0+\xi*\itemdistance} in
node[module] (module\xi) at +(\n1,0) {\items};
}

\foreach \items [count=\xi] in {#2}{%
\pgfmathtruncatemacro{\xj}{mod(\xi, \maxnumitem) + 1)}
\ifnum\xi<\maxnumitem % to not have the path from the last module % directed to the first one \path (module\xj) -- (module\xi) \guparrow; \fi } \ifbraceon % at the end we draw the brace with the comment \draw[brace] (module1.north west)--(module\maxnumitem.north east) node[above=3*\bracedistance, midway]{#3}; \fi \end{tikzpicture} } \begin{document} \braceddiagram[display brace=false]{% {Passo a\\ Passo b\\ Passo c\\ Passo d}, Continua, Fine}{} \vspace{1cm} \tikzset{my style for the diagram/.style={ brace distance=6pt, brace color=violet!60!magenta, fill color=violet!60!magenta!30, border color=violet!60!magenta, arrow color=violet!60!magenta, } } \braceddiagram[my style for the diagram]{Bla, Bla, Bla, Bla}{Some other comment} \end{document} ` Il risultato: [attachment=973]ScreenShot2014-04-05at9.40.18AM.png[/attachment] Ciao Claudio

Attachments:
You must be logged in to view attached files.

Go to top