Hallo,
ich suche schon einige Zeit nach einer Möglichkeit, einen Pfeil parallel zu einer Linie zu Zeichen. Etwas genauer:
Ich möchte einen Graphen zeichnen, also Nodes und die untereinander mit, z.B. \draw (a) -- (b); verbinden.
Jetzt möchte ich an einigen Verbindungen zwischen den Nodes, einen Pfeil zeichnen, parallel zur Verbindung.
Ich habe schon einiges versucht, aber nichts hat geklappt.
Kann mir da vielleicht jemand helfen ?
Gruß Igel
TikZ - einen Pfeil parallel zu einer Linie zeichen
-
- Forum-Newbie
- Beiträge: 4
- Registriert: Mi 4. Mai 2011, 10:36
Hallo,
bitte erstelle möglichst immer ein Minimalbeispiel. Vielleicht passt der Vorschlag:
Gruß
Elke
bitte erstelle möglichst immer ein Minimalbeispiel. Vielleicht passt der Vorschlag:
\documentclass{scrartcl} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{tikz} \begin{document} \begin{tikzpicture} \node[draw](a) at (0,0){Node a}; \node[draw](b) at (0,-2){Node b}; \path (a)edge(b); \draw[-latex] ([xshift=1mm]a.south)--([xshift=1mm]b.north); \end{tikzpicture} \end{document}
Elke
-
- Forum-Newbie
- Beiträge: 4
- Registriert: Mi 4. Mai 2011, 10:36
Hallo,
danke für den Tip. Das ist auch schon sehr nah an dem was ich haben möchte. Wenn die Nodes jetzt aber nicht direkt übereinander oder nebeneinander liegen, müsste ich den xshift ja auch wieder per Hand anpassen.
Beispielsweise habe ich hier node (b) etwas verschoben und da klappt sieht es nicht mehr gut aus.
danke für den Tip. Das ist auch schon sehr nah an dem was ich haben möchte. Wenn die Nodes jetzt aber nicht direkt übereinander oder nebeneinander liegen, müsste ich den xshift ja auch wieder per Hand anpassen.
Beispielsweise habe ich hier node (b) etwas verschoben und da klappt sieht es nicht mehr gut aus.
\documentclass{scrartcl} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{tikz} \begin{document} \begin{tikzpicture} \node[draw](a) at (0,0){Node a}; \node[draw](b) at (3,-2){Node b}; \path (a)edge(b); \draw[-latex] ([xshift=1mm]a.south)--([xshift=1mm]b.north); \end{tikzpicture} \end{document}
Hallo,
anderer Vorschlag für rechteckige Noden:
Gruß
Elke
anderer Vorschlag für rechteckige Noden:
\documentclass{scrartcl} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{tikz} \begin{document} \begin{tikzpicture} \node[draw](a) at (0,0){Node a}; \node[draw](b) at (3,-2){Node b}; \path (a)edge(b); \path[transform canvas={xshift=2mm},-latex] (a)edge(b); \end{tikzpicture} \end{document}
Elke
-
- Forum-Newbie
- Beiträge: 4
- Registriert: Mi 4. Mai 2011, 10:36
Hallo,
bitte mach das nächste Mal wirklich ein Minimalbeispiel, dann hätte man sofort gewußt, dass die Noden nicht unter- bzw. nebeneinander liegen und Kreise sind.
Hier ist nun noch ein Vorschlag, bei dem du die Länge der Pfeile von Hand anpassen musst:
Gruß
Elke
PS: Damit die Parallele auf der anderen Seite liegt, kann man auch einfach ein Minus vor den Abstand setzen (statt die Punkte zu vertauschen).
\Parallele[-latex]{D}{0.9cm}{A}{0.9cm}{2mm} liefert das gleiche wie \Parallele[latex-]{A}{0.9cm}{D}{0.9cm}{-2mm}
bitte mach das nächste Mal wirklich ein Minimalbeispiel, dann hätte man sofort gewußt, dass die Noden nicht unter- bzw. nebeneinander liegen und Kreise sind.
Hier ist nun noch ein Vorschlag, bei dem du die Länge der Pfeile von Hand anpassen musst:
\documentclass{scrartcl} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{calc} \colorlet{NGray}{black!20} \newcommand\Parallele[6][]{% \coordinate(Mitte)at($(#2)!0.5!(#4)$);% \draw[#1]($($(Mitte)!#3!(#2)$)!#6!270:(#2)$)--($($(Mitte)!#5!(#4)$)!#6!90:(#4)$);% } % Syntax:\Parallele[<Optionen wie Pfeilspitze etc.>]% % {<Punkt1>}{<Abstand Parallenmitte bis -ende Richtung Punkt1}% % {<Punkt2>}{<Abstand Parallenmitte bis -ende Richtung Punkt2}% % {<Abstand der Parallele>} % werden Punkt1 und Punkt2 vertauscht, dann liegt die Parallele auf der anderen Seite \begin{document} \begin{tikzpicture}[every node/.style={draw,circle}] \node(A) at (0,0){A}; \node[fill=NGray](B) at (2.5,-0.5){B}; \node[fill=NGray](D) at (2,-2){D}; \path(A)edge(B)% edge(D); \Parallele[latex-]{A}{0.8cm}{B}{0.8cm}{2mm} \Parallele[-latex]{D}{0.9cm}{A}{0.9cm}{2mm} \end{tikzpicture} \end{document}
Elke
PS: Damit die Parallele auf der anderen Seite liegt, kann man auch einfach ein Minus vor den Abstand setzen (statt die Punkte zu vertauschen).
\Parallele[-latex]{D}{0.9cm}{A}{0.9cm}{2mm} liefert das gleiche wie \Parallele[latex-]{A}{0.9cm}{D}{0.9cm}{-2mm}
Zuletzt geändert von esdd am Mi 4. Mai 2011, 21:25, insgesamt 1-mal geändert.
-
- Forum-Newbie
- Beiträge: 4
- Registriert: Mi 4. Mai 2011, 10:36