PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tikz, flowchart, Pfeil zwischen Elementen



Barny.G
21-01-2012, 13:27
Hallo liebe Gemeinde,

ein kleiner code vorweg und dann das Prob:

\documentclass{article}
\usepackage{geometry}
\geometry{a3paper,left=35mm,right=28mm, top=25mm, bottom=27mm}

\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning,calc}

\begin{document}
\pagestyle{empty}


% Define block styles
\tikzstyle{decision} = [diamond, draw, fill=red!15, text width=4.5em, text badly centered, node distance=15ex, inner sep=0pt]
%\tikzstyle{block} = [rectangle, draw, fill=blue!20, text width=5em, text centered, rounded corners, minimum height=4em]
\tikzstyle{block} = [rectangle, draw, fill=blue!20, node distance=15ex, text centered, rounded corners, text width=25ex, minimum height=5ex]
\tikzstyle{block2} = [rectangle, draw, fill=blue!70!red!10, node distance=15ex, text centered, rounded corners, text width=25ex, minimum height=5ex]
\tikzstyle{line} = [draw, -latex]
%\tikzstyle{cloud} = [draw, ellipse,fill=green!20, node distance=3cm, minimum height=2em]
\tikzstyle{cloud} = [draw, rectangle,fill=green!20, node distance=25ex, minimum height=5ex, rounded corners]

\noindent
\begin{tikzpicture}[node distance = 8ex, auto]
\node [block2] (init2) {Initialisierung mit $\boldsymbol{J}, \rho$};
\node [block2, below of=init2] (JTJ) {Eigenwerte und Ei\-gen\-vek\-to\-ren von $\left(\boldsymbol{J}^\top \boldsymbol{J}\right)$ berechnen};
\node [decision, below of=JTJ, node distance = 18ex] (TestRho) {$r\left(0\right) > \rho$?};
\node [block2, below of=TestRho] (CalcLambda) {Iteration von $\lambda$};
\node [block2, right of=TestRho, text width=8ex, node distance = 20ex] (Rho2) {$\rho=\frac{\rho}{2}$};

\path [line] (init2) -- (JTJ);
\path [line] (JTJ) -- (TestRho);
\path [line] (TestRho) -- node {ja} (CalcLambda);
\path [line] (TestRho) -- node {nein} (Rho2);
\path [line] (Rho2) |- (JTJ);

\end{tikzpicture}
\end{document}
Wie zu sehen geht der Pfeil nach der Entscheidung "nein" zu "rho=rho/2" und danach zur Eigenwertberechnung. Das ist leider Unsinn, da diese nicht noch einmal ausgeführt werden muss.

Wie kann ich es hinbekommen, dass der Pfeil direkt an die Linie zwischen der Eigenwertberechnung und der Entscheidung zeigt?

Viele Grüße

Thomas

Stefan_K
21-01-2012, 14:10
Hallo Thomas,

dafür kannst Du inmitten des einen Wegs einen Bezugspunkt (coordinate) definieren und im anderen Weg als Ziel nutzen. Hier zwei modifizierte Zeilen und das Ergebnis:


\path [line] (JTJ) -- (TestRho) coordinate[midway] (mid);
\path [line] (Rho2) |- (mid);

http://texample.net/media/img/flowchart.png

Stefan

Barny.G
21-01-2012, 18:40
Hallo Stefan,

na wie cool ist das denn?! :D Es klappt und genau wie ich wollte. Mann, man(n) weiß eben immer zu wenig!

Was noch viel wichtiger ist: Du hast auch erklärt was Du machst!

Vielen DANK!

Thomas

Ps.: ach ich freu' mich endlich mal wieder was "abgehakt" :)