Tikz: Node, seitlich versetzten, genau zwischen zwei anderen Nodes positionieren

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

Markdown is OFF

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Tikz: Node, seitlich versetzten, genau zwischen zwei anderen Nodes positionieren

Re: Tikz: Node, seitlich versetzten, genau zwischen zwei anderen Nodes positionieren

von Zoid » Di 17. Nov 2020, 12:03

Vielen Dank, das wird dann mal direkt im Latex-Ordner abgespeichert :D

von Gast » Mo 16. Nov 2020, 23:31

  • Flowchart

  • Letztes Beispiel im Abschnitt 20.6 Examples in der Dokumentation von pgf/TikZ

Re: Tikz: Node, seitlich versetzten, genau zwischen zwei anderen Nodes positionieren

von Zoid » Mo 16. Nov 2020, 21:00

cis hat geschrieben:
Mo 16. Nov 2020, 14:16

Dann ist es aber vielleicht generell ganz sinnvoll ein Tool zu verwenden, anstelle der Einzelpositionierung vieler nodes; z.B. die TikZ-matrix.

Gibt es denn dafür eine Anleitung oder Erklärung? Ich habe die Matrix bisher nur als Matrix benutzt, nicht aber als Ablaufdiagramm. Unter "flow chart" finde ich in der Anleitung nichts.

Re: Tikz: Node, seitlich versetzten, genau zwischen zwei anderen Nodes positionieren

von cis » Mo 16. Nov 2020, 14:16

Zoid hat geschrieben:
Fr 13. Nov 2020, 21:40

Wäre hier keine Option. Meine Frage stellt einen kleinen Teil eines relativ großen Fließdiagramms dar. Aber soweit habe ich es hinbekommen.

Dann ist es aber vielleicht generell ganz sinnvoll ein Tool zu verwenden, anstelle der Einzelpositionierung vieler nodes; z.B. die TikZ-matrix.

Re: Tikz: Node, seitlich versetzten, genau zwischen zwei anderen Nodes positionieren

von Zoid » Fr 13. Nov 2020, 21:40

cis hat geschrieben:
Mi 11. Nov 2020, 15:34

Ich finde das Beispiel durchaus unübersichtlich für ein Minimalbeispiel.

Was könnte ich verbessern?

cis hat geschrieben:
Mi 11. Nov 2020, 15:34

ob das midway drin steht oder nicht, macht keinen Unterschied.

Wurde da jetzt nicht einfach das "midway" gegen "pos=0.5" ausgetauscht und der Block ans Ende verschoben? Meine Interpretation wäre, dass ich mit midway die halbe Strecke angibt. Wenn ich nur 40 % der Strecke haben wollen würde, dann müsste ich mir pos arbeiten.

cis hat geschrieben:
Mi 11. Nov 2020, 15:34

Ansonsten nimm eben eine TikZ-Matrix, wenn das Ganze automatisiert werden soll.

Wäre hier keine Option. Meine Frage stellt einen kleinen Teil eines relativ großen Fließdiagramms dar. Aber soweit habe ich es hinbekommen.

Re: Tikz: Node, seitlich versetzten, genau zwischen zwei anderen Nodes positionieren

von cis » Mi 11. Nov 2020, 15:34

Ich finde das Beispiel durchaus unübersichtlich für ein Minimalbeispiel.

Aber die Syntax macht m.E. wenig Sinn:

Code: Alles auswählen

\path[line](step2) -- coordinate[midway](mx) (step4);

ob das midway drin steht oder nicht, macht keinen Unterschied.

Vermutlich ist sowas gesucht:

Code: Alles auswählen

\path[line, red](step2) -- (step4)  coordinate[pos=0.5](mx);

Ansonsten nimm eben eine TikZ-Matrix, wenn das Ganze automatisiert werden soll.

Re: Tikz: Node, seitlich versetzten, genau zwischen zwei anderen Nodes positionieren

von Zoid » So 8. Nov 2020, 21:35

Das hat geklappt, vielen Dank.
Allerdings muss man daran denken, dass die Koordinaten erstellt werden, bevor sie abgerufen werden. Daher ist eine strenge unterteilung in Nodes und Lines nicht möglich, sofern eine Koordinate für Nodes erst in Lines definiert wird.

Re: Tikz: Node, seitlich versetzten, genau zwischen zwei anderen Nodes positionieren

von Bartman » Sa 7. Nov 2020, 22:20

Die Platzierung der Box rechts der Koordinate auf der Mitte des Pfades hätte nicht genug Abstand zu den anderen Boxen. Um das zu vermeiden, kann man einen der Anker auf der rechten Seite einer Box in die Positionsbestimmung einbinden.

Code: Alles auswählen

\documentclass[tikz, border=5pt]{standalone}
\usetikzlibrary{arrows.meta,positioning}

% \tikzstyle ist veraltet
\tikzset{
    box/.style={draw, text width=11em, align=center, minimum height=2em},
    boxlight/.style={draw, text width=5em, align=center, minimum height=4em},
    line/.style={-{Latex[scale=.8]}}
}

\begin{document}
\begin{tikzpicture}[node distance = 5mm and 10mm, font=\footnotesize]
    % Place nodes
    \node [box] (step2) {Text Text Text Text Text};
    %\node [box, below= of step2](step3){Beschichtung Furnierlagen mit Klebstoff};
    \node [box, below=of step2] (step4) {Text Text Text Text Text Text};
    \draw [line] (step2) -- coordinate (mx) (step4);
    \node [box, right=of mx-|step2.south east] (step2b) {Text Text};
    \draw [line] (step2b) -- (mx);
% Hilfestellung, um die Positionsbestimmung besser zu verstehen
%    \draw [red, thick] 
%        (mx) -| (step2.south east)
%        (mx-|step2.south east) circle [radius=3pt]
%    ;
\end{tikzpicture}
\end{document}

Tikz: Node, seitlich versetzten, genau zwischen zwei anderen Nodes positionieren

von Zoid » Sa 7. Nov 2020, 21:40

Moin moin,

ich würde gerne ein Ablaufdiagramm erstellen. Nun habe ich neben dem Hauptablaufpfad, welcher senkrecht verläuft, auch noch Nebenpfade, die in den Hauptpfad einmünden sollen. Leider werden die Verbindungdspfeile in horizontaler Richtung nicht gerade, was an der Positionierung der seitlichen Node liegt. Ich habe zwar über midway den Mittelpunkt einer Verbindungslinie im Hauptpfad definieren können, doch leider weiß nicht, wie ich die seitliche Node mti Hilfe dieser Koordinate positionieren kann bzw. den horizontalen Pfeil gerade hinbekommen kann.
Umständliche Erklärung, daher hier ein Bild:

Unbenannt.PNG
Unbenannt.PNG (11.22 KiB) 667 mal betrachtet

Und der Quellcode:

Code: Alles auswählen

\documentclass[ngerman,12pt,a4paper,toc=listof,parskip=full,singlespacing=true]{scrreprt}
\usepackage{tikz}	% Ablaufdiagramme
\usetikzlibrary{fit,matrix,shapes.geometric,arrows,positioning}	% =


\begin{document}
\tikzstyle{box}=[rectangle,draw, text width=11em, text centered, minimum height=2em]	
\tikzstyle{boxlight}=[rectangle, text width=5em, text centered, minimum height=4em]
\tikzstyle{line} = [draw, -latex']

\begin{figure}[h]
\centering
\begin{tikzpicture}[node distance = 5mm and 10mm,font=\footnotesize]
	% Place nodes
	\node[box](step2){Text Text Text Text Text };
		\node[box, right= of step2,yshift=-0.65cm](step2b){Text Text };
	%\node[box,below= of step2](step3){Beschichtung Furnierlagen mit Klebstoff};
	\node[box,below= of step2](step4){Text Text Text Text Text Text };

% Draw edges
\path[line](step2) -- coordinate[midway](mx) (step4);
	\path [line](step2b) -- (mx);	

\end{tikzpicture}
\end{figure}
\end{document}

Würde mich freuen, wenn jemand einen Rat hat.

Vielen Dank un viele Grüße :wink:


Nach oben