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
Code, hier editierbar zum Übersetzen:
\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};
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  1. Das haut leider nicht ganz hin. Kann es an dem Pfad e-f liegen? Die Position der Überbrückung liegt verdächtig in der Mitte zwischen e (center) und f (center). Wie kann ich das Problem lösen?
  2. Welcher Befehl sorgt dafür, dass eine weitere Linie zwischen e-f ohne Überbrückung durchgezogen wird?
  3. Würde das auch ohne die Hilfskoordinate hilfps4 über "Eck" funktionieren?

gefragt 25 Okt '16, 13:45

SF6's gravatar image

SF6
15953440
Akzeptiert-Rate: 0%

bearbeitet 15 Mär '17, 07:53

saputello's gravatar image

saputello
11.1k174365


Zu 3.: Ja, die Hilfskoordinate hilfps4 kannst Du einsparen, siehe unten. Und auch hilfps und hilfps3 werden nicht wirklich gebraucht.

Zu 2.: Zwischen e und f zeichnest Du eine zweite Linie mit \path (e) -- coordinate(hilfps2hilfps4-ef) (f);, da dieser Pfad in der scope mit every path/.append style=free steht. Der Pfad wird aber gar nicht gebraucht.

Die Überbrückung liegt bei Dir in der Mitte zwischen e und f weil mit

Open in Online-Editor
\path (e) -- coordinate(hilfps2hilfps4-ef) (f);
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

die für die Überbrückung genutzte Koordinate hilfps2hilfps4 in der Mitte zwischen den beiden Nodes definiert wird.

Beide Überbrückungen auf dem Weg von hilfps2 zum Node h bekommst Du beispielsweise mit

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\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)
;
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Code:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\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};
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Wenn sich die Überbrückungsstellen nicht so einfach ermitteln lassen, kann es durchaus sein, dass Du doch die intersections Bibliothek laden und Schnittpunkte berechnen lassen musst.

Permanenter link

beantwortet 25 Okt '16, 15:25

esdd's gravatar image

esdd
17.8k304257
Akzeptiert-Rate: 62%

Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×731
×13
×7

gestellte Frage: 25 Okt '16, 13:45

Frage wurde gesehen: 6,795 Mal

zuletzt geändert: 25 Okt '16, 15:25

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×