Tikz: Horizontaler Pfeil zwischen Node mit Subnodes und Node unterschiedlicher Größe

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:

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: Horizontaler Pfeil zwischen Node mit Subnodes und Node unterschiedlicher Größe

Re: Tikz: Horizontaler Pfeil zwischen Node mit Subnodes und Node unterschiedlicher Größe

von Bartman » So 8. Nov 2020, 22:26

Ersetze

\draw[line](stepX) -- (step6);

durch

\draw[line](stepXall.east|-step6) -- (step6);

Wahrscheinlich ist Dir der Abschnitt 13.3.1 "Intersections of Perpendicular Lines" in der Dokumentation, der das Thema behandelt, bereits bekannt.

Wenn Du für die oberste der drei eingerahmten Boxen keinen Rahmen haben möchtest, dann kannst Du diesen für diese eine Box abschalten und dennoch den gewünschten Stil auf alle drei anwenden.

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

\tikzset{
    box/.style={draw, text width=11em, align=center, minimum height=1em},
    sidebox/.style={draw, text width=10em, align=center, minimum height=1em},
    subbox/.style={draw, text width=4.2em, align=center, minimum height=1em,xshift=-8mm},
    subbox2/.style={draw, text width=9em, align=center, minimum height=1em},
    boxlight/.style={text width=5em, align=center, minimum height=4em},
    line/.style={-{Latex[scale=.8]}}
}

\begin{document}
\begin{tikzpicture}[node distance = 5mm and 10mm, font=\footnotesize]
\node [box] (step6) {Text};

\path [nodes=subbox2]
    node [left=of step6, draw=none] (stepX) {Text}
    node [below=of stepX] (stepXa) {Text}
    node [below=of stepXa] (stepXb) {Text}
;

\node[draw, fit={(stepX)(stepXa)(stepXb)}] (stepXall) {};

\path [line] 
    (stepXa) edge (stepXb)
    (stepXall.east|-step6) edge (step6)
;
\end{tikzpicture}
\end{document}

Tikz: Horizontaler Pfeil zwischen Node mit Subnodes und Node unterschiedlicher Größe

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

Moin moin,

ich habe eine weitere Frage. Folgdendes Bild zeigt die Augangssituation:

Unbenannt.PNG
Unbenannt.PNG (4.25 KiB) 945 mal betrachtet

Ich würde gerne den horizontalen Verbindungspfeil zwischen den Rändern der Nodes verlaufen lassen. Leider ragt er in die linke Node rein. Meine Lösung ist nur provisorisch, da ich keine horizonatle Linie bekomme, wenn ich den Peil von der großen Node direkt starten lasse. Daher staret er aktuell von einer Subnode in der Node. Der Code zeigt einfacher, was ich meine:

\documentclass[ngerman,12pt,a4paper,toc=listof,parskip=full,singlespacing=true]{scrreprt}

\usepackage{biblatex}	
\usepackage{acronym}

\usepackage{tikz}	% Ablaufdiagramme
\usetikzlibrary{fit,matrix,shapes.geometric,arrows.meta,positioning}	% =

\begin{document}

\tikzset{
    box/.style={draw, text width=11em, align=center, minimum height=1em},
    sidebox/.style={draw, text width=10em, align=center, minimum height=1em},
    subbox/.style={draw, text width=4.2em, align=center, minimum height=1em,xshift=-8mm},
    subbox2/.style={draw, text width=9em, align=center, minimum height=1em},
    boxlight/.style={text width=5em, align=center, minimum height=4em},
    line/.style={-{Latex[scale=.8]}}
}

\begin{figure}[h]
\centering
\begin{tikzpicture}[node distance = 5mm and 10mm,font=\footnotesize]

\node[box](step6){Text};

\node[left=of step6,text width=9em,align=center](stepX){Text };
\node [subbox2,below=of stepX] (stepXa) {Text};
\node [subbox2,below=of stepXa] (stepXb) {Text};

\node[draw,fit={(stepX)(stepXa)(stepXb)}](stepXall){};

\draw[line](stepXa) -- (stepXb);
\draw[line](stepX) -- (step6);	

	
\end{tikzpicture}
\caption{Text}
\end{figure}
\end{document}

Hat jemand eine Idee, wie ich den Pfeil in seiner Länge inkürzen kann? Ein Befehl zum horizontalen Verlauf einer Linie würde mir auch helfen.

Vielen Dank und viele Grüße :wink:


Nach oben