Ich habe mir eine Hilfskoordinate hilfps4 definiert um einen Pfad zwischen zwei Punkten zu zeichnen. Dieser soll zwei andere Pfade überbrücken. Öffne in Overleaf
\documentclass{article} \usepackage{tikz} \usetikzlibrary{positioning,arrows.meta,calc} \colorlet{lcfree}{green} \colorlet{lcnorm}{blue} \colorlet{lccong}{red} % globale Settings \tikzset{ base/.style={draw, on grid, align=center, minimum height=4ex}, proc/.style={base, rectangle, text width=10em}, var/.style={base, circle, text width=4ex}, %% Stil für Hilfskoordinaten coord/.style={coordinate, on grid, node distance=6mm and 20mm}, % Stile für Verbindungslinien norm/.style={->, draw, lcnorm}, free/.style={->, draw, lcfree}, cong/.style={->, draw, lccong}, % Stil für Kreuzungen von Pfaden jump/.style args={(#1) to (#2) over (#3) by #4}{ insert path={ let \p1=($(#1)-(#3)$), \n1={veclen(\x1,\y1)}, \n2={atan2(\y1,\x1)}, \n3={abs(#4)}, \n4={#4>0 ?180:-180} in (#1) -- ($(#1)!\n1-\n3!(#3)$) arc (\n2:\n2+\n4:\n3) -- (#2) } } } \begin{document} \begin{tikzpicture}[% >={Triangle[angle=60:5pt]},% Form der Pfeilspitzen node distance=20mm and 30mm, % Vorgaben für Abstände zwischen Nodes in dieser Zeichnung every join/.style={norm}, % Default linetype for connecting boxes ] \begin{scope}[nodes=var] \node (0) {0}; \node [right=of 0] (a) {a}; \node [right=of a] (b) {b}; \node [right=of b] (c) {c}; \node [below=of a] (d) {d}; \node [below=of b] (e) {e}; \end{scope} \begin{scope}[nodes=coord] \node [below=of e] (hilf) {};% Hilfskoordinate für definierten Zusatzabstand \node (hilfps) at (hilf-|c){}; \node [below=of hilfps] (hilfps2) {}; \end{scope} \begin{scope}[nodes=proc] \node [below=of hilf] (f) {f}; \node [below=of f] (g) {ggg}; \node (h) at (0|-g) {hhh}; \end{scope} \node [coord, right=12mm of h.north] (hilfps3){}; \node [coord] (hilfps4) at (hilfps2-|hilfps3){}; % farbiges Markieren der Hilfspunkte \foreach \coord/\color in {hilf/green,hilfps/orange,hilfps2/black,hilfps3/blue,hilfps4/violet} \node[\color]at(\coord){x}; \begin{scope}[every path/.append style=free] \foreach \start/\end in {a/d,b/e,e/f,0/h,f/g,h/g} \path(\start)--(\end); \path (c)|-(f); \path (d)|-(f); \path (hilfps2)-|(hilfps3); %über Kreuz \path (a) -- coordinate(bd-ae) (e); \path [jump=(b) to (d) over (bd-ae) by 6pt]; \path (e) -- coordinate(hilfps2hilfps4-ef) (f); \path [jump=(hilfps2) to (hilfps4) over (hilfps2hilfps4-ef) by 6pt]; \end{scope} \end{tikzpicture} \end{document}
|
Zu 3.: Ja, die Hilfskoordinate Zu 2.: Zwischen Die Überbrückung liegt bei Dir in der Mitte zwischen Open in Online-Editor
\path (e) -- coordinate(hilfps2hilfps4-ef) (f);
die für die Überbrückung genutzte Koordinate Beide Überbrückungen auf dem Weg von Open in Online-Editor
\path [jump={(hilfps2) to ($(hilfps2-|e)!-10pt!(hilfps2)$) over (hilfps2-|e) by 6pt}] [jump={($(hilfps2-|e)!-10pt!(hilfps2)$) to ([xshift=\abst]hilfps2-|h) over (hilfps2-|d) by 6pt}] --([xshift=\abst]h.north) ; Code: Open in Online-Editor
\documentclass{article} \usepackage{tikz} \usetikzlibrary{positioning,arrows.meta,calc} \colorlet{lcfree}{green} \colorlet{lcnorm}{blue} \colorlet{lccong}{red} % globale Settings \tikzset{ base/.style={draw, on grid, align=center, minimum height=4ex}, proc/.style={base, rectangle, text width=10em}, var/.style={base, circle, text width=4ex}, %% Stil für Hilfskoordinaten coord/.style={coordinate, on grid, node distance=6mm and 20mm}, % Stile für Verbindungslinien norm/.style={->, draw, lcnorm}, free/.style={->, draw, lcfree}, cong/.style={->, draw, lccong}, % Stil für Kreuzungen von Pfaden jump/.style args={(#1) to (#2) over (#3) by #4}{ insert path={ let \p1=($(#1)-(#3)$), \n1={veclen(\x1,\y1)}, \n2={atan2(\y1,\x1)}, \n3={abs(#4)}, \n4={#4>0 ?180:-180} in (#1) -- ($(#1)!\n1-\n3!(#3)$) arc (\n2:\n2+\n4:\n3) -- (#2) } } } \begin{document} \begin{tikzpicture}[% >={Triangle[angle=60:5pt]},% Form der Pfeilspitzen node distance=20mm and 30mm, % Vorgaben für Abstände zwischen Nodes in dieser Zeichnung every join/.style={norm}, % Default linetype for connecting boxes ] \newcommand*\abst{12mm}% Abstand zwsichen den Pfeilspitzen oben auf Node h \begin{scope}[nodes=var] \node (0) {0}; \node [right=of 0] (a) {a}; \node [right=of a] (b) {b}; \node [right=of b] (c) {c}; \node [below=of a] (d) {d}; \node [below=of b] (e) {e}; \end{scope} \begin{scope}[nodes=coord] \node [below=of e] (hilf) {};% Hilfskoordinate für definierten Zusatzabstand \node [below= of hilf-|c](hilfps2) {}; \end{scope} \begin{scope}[nodes=proc] \node [below=of hilf] (f) {f}; \node [below=of f] (g) {ggg}; \node (h) at (0|-g) {hhh}; \end{scope} \begin{scope}[every path/.append style=free] \foreach \start/\end in {a/d,b/e,e/f,0/h,f/g,h/g} \path(\start)--(\end); \path (c)|-(f); \path (d)|-(f); \path (a)--(e); %über Kreuz \path [jump=(b) to (d) over ($(b)!.5!(d)$) by 6pt]; \path [jump={(hilfps2) to ($(hilfps2-|e)!-10pt!(hilfps2)$) over (hilfps2-|e) by 6pt}] [jump={($(hilfps2-|e)!-10pt!(hilfps2)$) to ([xshift=\abst]hilfps2-|h) over (hilfps2-|d) by 6pt}] --([xshift=\abst]h.north) ; \end{scope} % farbiges Markieren der Hilfspunkte \foreach \coord/\color in {hilf/purple,hilfps2/orange} \node[\color]at(\coord){x}; \end{tikzpicture} \end{document} Wenn sich die Überbrückungsstellen nicht so einfach ermitteln lassen, kann es durchaus sein, dass Du doch die beantwortet 25 Okt '16, 15:25 esdd |