Symmetrie in TikZ

Tabellen und Grafiken erstellen und anordnen


Katomako
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Fr 10. Apr 2015, 15:57

Symmetrie in TikZ

Beitrag von Katomako »

Hallo zusammen:),

kann mir jemand sagen wie ich die Eingänge s und Ausgänge s symmetrisch um die Mittelachse bekommen und das die Pfeile am Ausgang alle aus einem Punkt herauskommen?

Vielen Dank für jeden Tipp:)
\tikzset{input/.style={text depth=.25ex}}
\tikzset{output/.style={text depth=.25ex}}
\tikzset{plus/.style={circle, draw, thick, minimum size=0.5cm, inner sep=0, fill=white}}
\tikzset{filter/.style={rectangle, draw, thick, minimum width=2cm, minimum height=0.75cm, inner xsep=0.25cm,fill=white}}

\tikzset{/tikz/thin/.style={line width=.6pt}}
\tikzset{/tikz/thick/.style={line width=1pt}}
\tikzset{every picture/.style={thin}}

\def\unitDist{1cm}

\begin{tikzpicture}[x=\unitDist,y=\unitDist,font=\small,>=stealth']

  \node[input, align=right]                           (input1) {$s_{1}$};
  \node[input, below=0.5 of input1,align=right]       (input2) {$s_{2}$};
  \node[input, below=0.5 of input2,align=right]       (input3) {...};
  \node[input, below=0.5 of input3,align=right]       (input4) {$s_{n}$};

  \node[plus, right=0.5 of input2]           	(sum) {$+$};
  
  \node[filter, right=0.5 of sum]    (node) {Verarbeitung};

  \node[input, right=0.5 of node,align=left]        (output2) {$s_{1}$};
  \node[input, above=0.5 of output2,align=left]        (output1) {$s_{1}$};
  \node[input, below=0.5 of output2,align=left]        (output3) {...};
  \node[input, below=0.5 of output3,align=left]        (output4) {$s_{1}$};

  \draw[->]  (input1) -- (sum);
  \draw[->]  (input2) -- (sum);
  \draw[->]  (input3) -- (sum);
  \draw[->]  (input4) -- (sum);
  \draw[->] (sum) -- (node);
  \draw[->] (node) -- (output1);
  \draw[->] (node) -- (output2);
  \draw[->] (node) -- (output3);
  \draw[->] (node) -- (output4);

  
\end{tikzpicture}

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Ich hab dein Beispiel zu einem vollständigen Minimalbeispiel ergänzt.

Lies am besten einmal Kapitel 3 im pgfmanual.

Ich habe einfach noch jeweils einen Eingang und einen Ausgang ergänzt. Die Knoten manuell um einen bestimmten Betrag zu verschieben ist aber auch nicht schwer. Auch bei den Ausgängen wird immer der gleiche Punkt verwendet. Dieser liegt eben genau im Zentrum von deines \node. Ich habe daher jeweils .east ergänzt. Dann wird immer der östliche Punkt verwendet. Auch hier könnte man den Punkt noch verschieben und wieder hinter den Knoten legen …

… schreibt man in LateX übrigens mit \ldots im Text- und \dots im Mathe-Modus.
\documentclass[tikz]{standalone}
\usetikzlibrary{arrows, positioning}
\begin{document}
\tikzset{input/.style={text depth=.25ex}}
\tikzset{output/.style={text depth=.25ex}}
\tikzset{plus/.style={circle, draw, thick, minimum size=0.5cm, inner sep=0, fill=white}}
\tikzset{filter/.style={rectangle, draw, thick, minimum width=2cm, minimum height=0.75cm, inner xsep=0.25cm,fill=white}}

\tikzset{/tikz/thin/.style={line width=.6pt}}
\tikzset{/tikz/thick/.style={line width=1pt}}
\tikzset{every picture/.style={thin}}

\def\unitDist{1cm}

\begin{tikzpicture}[x=\unitDist,y=\unitDist,font=\small,>=stealth']

  \node[input, align=right]                           (input1) {$s_{1}$};
  \node[input, below=0.5 of input1,align=right]       (input2) {$s_{2}$};
  \node[input, below=0.5 of input2,align=right]       (input3) {$s_{3}$};
  \node[input, below=0.5 of input3,align=right]       (input4) {$\dots$\strut};
  \node[input, below=0.5 of input4,align=right]       (input5) {$s_{n}$};

  \node[plus, right=0.5 of input3]              (sum) {$+$};
  
  \node[filter, right=0.5 of sum]    (node) {Verarbeitung};

  \node[input, right=0.5 of node,align=left]        (output3) {$s_{3}$};
  \node[input, above=0.5 of output3,align=left]        (output2) {$s_{2}$};
  \node[input, above=0.5 of output2,align=left]        (output1) {$s_{1}$};
  \node[input, below=0.5 of output3,align=left]        (output4) {$\dots$\strut};
  \node[input, below=0.5 of output4,align=left]        (output5) {$s_{n}$};

  \draw[->]  (input1) -- (sum);
  \draw[->]  (input2) -- (sum);
  \draw[->]  (input3) -- (sum);
  \draw[->]  (input4) -- (sum);
  \draw[->]  (input5) -- (sum);
  \draw[->] (sum) -- (node);
  \draw[->] (node.east) -- (output1);
  \draw[->] (node.east) -- (output2);
  \draw[->] (node.east) -- (output3);
  \draw[->] (node.east) -- (output4);
  \draw[->] (node.east) -- (output5);

  
\end{tikzpicture}
\end{document}
Ein vollständiges Minimalbeispiel (VM) zu erzeugen, ist gar nicht schwer und hilft ganz oft, Fehler selber zu finden. Ohne bekommt man selten gute Antworten. Anleitungen findest du z.B. im golatex Wiki auf TeXWelt oder minimalbeipiel.de
Außerdem hilft das Lesen dieser Seite, Fragen richtig zu stellen.

Katomako
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Fr 10. Apr 2015, 15:57

Beitrag von Katomako »

Danke :)! Dass mit den Himmelsrichtungen macht alles natürlich sehr bequem.

Besserwisser

Beitrag von Besserwisser »

sudo hat geschrieben:… schreibt man in LateX übrigens mit \ldots im Text- und \dots im Mathe-Modus.
\dots ist im LaTeX-Kern definiert als:
\DeclareRobustCommand{\dots}{%
   \ifmmode\mathellipsis\else\textellipsis\fi}
und \ldots als:
\let\ldots\dots
Die oft gelesene Behauptung \dots verlange den Mathemodus und im Textmodus sei \ldots zu verwenden, stimmt also nicht. \dots funktioniert genauso im Textmodus und \ldots liefert im Mathemodus dasselbe wie \dots.

Keine Ahnung, woher die Fehlinformation kommt.

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Besserwisser hat geschrieben:Keine Ahnung, woher die Fehlinformation kommt.
Das kommt davon, wenn man nicht in den LaTeX-Kern guckt und nur nachplappert, was andere erzählen. Danke auf jeden Fall für dir Korrektur!
Ein vollständiges Minimalbeispiel (VM) zu erzeugen, ist gar nicht schwer und hilft ganz oft, Fehler selber zu finden. Ohne bekommt man selten gute Antworten. Anleitungen findest du z.B. im golatex Wiki auf TeXWelt oder minimalbeipiel.de
Außerdem hilft das Lesen dieser Seite, Fragen richtig zu stellen.

Antworten