PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \Tikz Flussdiagramm - \path verändern



monstermawe
26-09-2008, 09:46
Liebe Jünger des Latex,
ich hab vor ungfähr einem Jahr angefangen mich mit Latex zu "spielen", und bis jetzt alle meine Problemchen selbst lösen können. Nicht das ich ein Pro wäre oder bin aber ich finde zu meinem Anliegen keine Lösungsvorschläge im Internetz.

das ganze geht so:


\documentclass{article}

\usepackage[latin1]{inputenc}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\begin{document}
\pagestyle{empty}


%begin sheet
\begin{figure}[!H]
\begin{center}
\caption{son shice }
\label{son shice}


\tikzstyle{block} = [rectangle, draw, text width=10em, text centered, rounded corners, minimum height=3em]
\tikzstyle{blank} = [rectangle, text width=0em, text centered, rounded corners, minimum height=0em]
\tikzstyle{line} = [draw, -latex']

\begin{tikzpicture}[node distance = 2.5cm, auto]
%Start
\node [block] (1) {1};

%blankes
\node [blank, below of=1] (blank) {};
\node [blank, below of=blank] (blank1) {};
\node [blank, below of=blank1] (blank2) {};
\node [blank, below of=blank2] (blank3) {};

%right side
\node [block, right of=blank] (2) {2};
\node [block, below of=2] (3) {3};
\node [block, below of=3] (4) {4};

%left side
\node [block, left of=blank] (5) {5};
\node [block, below of = 5] (6) {6};
\node [block, below of=6] (7) {7};
\node [block, below of=7](8){8};
\node [block, below of=4] (9) {9};
\node [blank, right of=9] (blank6) {};
\node [block, below of=blank3](10){10};

\node [blank, below of=10] (blank4) {};
\node[block, left of =blank4](11){11};
\node[block, right of =blank4](12){12};
\node[block,below of=12](13){13};
\node[block, below of=13](14){14};

% paths
\path [line] (1) -- (5);
\path [line] (1) -- (2);
\path [line] (2) -- (3);
\path [line] (3) -- (4);
\path [line] (5) -- (6);
\path [line] (6) -- (7);
\path [line] (7) -- (8);
\path [line] (8) -- (9);
\path[line] (8) -- (10);
\path[line] (9) -- (10);
\path[line, dashed] (7) -| (1);

\path[line] (10) -- (11);
\path[line] (10) -- (12);
\path[line] (12) -- (13);
\path[line] (13) -- (14);
\path[line, dashed] (14) -| (blank6);
\path[line, dashed] (blank6) |- (1);

\end{tikzpicture}
\end{center}
\end{figure}

\end{document}



einfach zu kompilieren. hier mein Problem: Verbinde node 1 mit node 14 mit einer durchgehenden strichlierten Linie die nicht unterbrochen ist (genauso wie dargestellt, rechts außen).
und ja ich weiß ich bin ein kleiner hacker, die blanks brauche ich damit ich das diagramm so hinbekomm wie ich will, weil ich auch nicht weiß wie man mit einem node anfängt, das sich dann in zwei "varianten" aufteilt. falls irgendjemand auch eine lösung hat das hier zu programmieren ohne blankes zu verwenden wär ich auch dankbar, muss aber nicht sein.

herzelichst ihr
monstermawe

Syralist
26-09-2008, 11:45
Ich hab was gefunden:

\documentclass{article}

\usepackage[latin1]{inputenc}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\begin{document}
\pagestyle{empty}


%begin sheet
\begin{figure}[!H]
\begin{center}
\caption{son shice }
\label{son shice}


\tikzstyle{block} = [rectangle, draw, text width=10em, text centered, rounded corners, minimum height=3em]
\tikzstyle{blank} = [coordinate]%[rectangle, text width=0em, text centered, rounded corners, minimum height=0em]
\tikzstyle{line} = [draw, -latex']

\begin{tikzpicture}[node distance = 2.5cm, auto]
%Start
\node [block] (1) {1};

%blankes
%\node [blank, below of=1] (blank) {};
%\node [blank, below of=blank] (blank1) {};
%\node [blank, below of=blank1] (blank2) {};
%\node [blank, below of=blank2] (blank3) {};

%right side
\node [block, below of=1, right=1.25cm] (2) {2};
\node [block, below of=2] (3) {3};
\node [block, below of=3] (4) {4};

%left side
\node [block, below of=1, left=1.25cm] (5) {5};
\node [block, below of = 5] (6) {6};
\node [block, below of=6] (7) {7};
\node [block, below of=7](8){8};
\node [block, below of=4] (9) {9};
\node [blank, right of=9] (blank6) {};
\node [block, below of=9, left=1.25cm](10){10};

\node [blank, below of=10] (blank4) {};
\node[block, below of =10, left=1.25cm](11){11};
\node[block, below of =10, right=1.25cm](12){12};
\node[block,below of=12](13){13};
\node[block, below of=13](14){14};

% paths
\path [line] (1) -- (5);
\path [line] (1) -- (2);
\path [line] (2) -- (3);
\path [line] (3) -- (4);
\path [line] (5) -- (6);
\path [line] (6) -- (7);
\path [line] (7) -- (8);
\path [line] (8) -- (9);
\path[line] (8) -- (10);
\path[line] (9) -- (10);
\path[line, dashed] (7) -| (1);

\path[line] (10) -- (11);
\path[line] (10) -- (12);
\path[line] (12) -- (13);
\path[line] (13) -- (14);
\path[line, dashed, ] (14) -| (blank6) |- (1);
%\path[line, dashed] (14) -| (blank6);
%\path[line, dashed] (blank6) |- (1);

\end{tikzpicture}
\end{center}
\end{figure}

\end{document}

Die Formatierung der Blanks als coordinate sorgt dafür, das in dem Pfad von (14) zu (1) keine Lücke entsteht.

Du kannst die Nodes verschieben, dann brauchst du keine Blanks mehr, siehe Code. Der einzige Blank den ich nicht loswerden konnte, ist der für den Pfad von (14) nach (1).

monstermawe
26-09-2008, 12:24
wow danke, sehr nice und mein "hack" ist auch gleich behoben.
vielen dank

mawe