Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

08 Jul '18, 16:25

cis's gravatar image

cis
9.5k96460491

Verwandt mit meiner Antwort auf die verlinkte Frage und teilweise basierend auf [https://tex.stackexchange.com/a/432147/121799](https://tex.stackexchange.com/a/432147/121799). Wenn Du `calc` lädst, kannst Du Dir all die `\pgfgetlastxy` und `\pgfmathsetmacro` sparen, und alles in einen Style für einen `edge` path stecken. Du brauchst dann nur noch `\draw (A) edge[Pfeil] (B);` zu sagen. \documentclass[margin=5mm]{standalone} \usepackage{tikz} \usetikzlibrary{shapes.arrows,calc} \tikzset{Pfeil/.style=% {to path={let \p1 = ($(\tikztotarget)-(\tikztostart)$), \n1 = {int(mod(scalar(atan2(\y1,\x1))+360, 360))}, % calculate angle in range [0,360) \n2 = {veclen(\x1,\y1)} in \pgfextra{\typeout{\n1,\n2,\x1,\y1}} (\tikztotarget) node[draw,single arrow, minimum height=\n2-\pgflinewidth, % minimum width=5ex, %minimum height=13ex, inner sep=1ex, %text height=1ex, %text depth=0ex, single arrow head extend=1ex, rotate=\n1, % not shape border rotate, because that for some reason didn't work anchor=tip, % anchor=tip added, pos=0.5 removed ]{} }}} \begin{document} \begin{tikzpicture} \coordinate (A) at (0,0); \coordinate (B) at (2,2); \draw (A) edge[Pfeil] (B); \draw[red] (A) -- (B); \end{tikzpicture} \end{document} [![alt text][1]][1] text][1]][2] ___ **Ergänzung:** Mit kleineren Anpassungen kann `Pfeil=double` als optionales Argument verwendet werden; gegenüber `Pfeil` bzw. gleichbedeutend `Pfeil=single` (default). Z.B. `\draw[] (A) edge[Pfeil=double] (B);` [![alt text][3]][3] \documentclass[margin=5mm]{standalone} \usepackage{tikz} \usetikzlibrary{shapes.arrows,calc} \tikzset{ Pfeil/.style args={#1}{ to path={let \p1 = ($(\tikztotarget)-(\tikztostart)$), \n1 = {int(mod(scalar(atan2(\y1,\x1))+360, 360))}, % calculate angle in range [0,360) \n2 = {veclen(\x1,\y1)} in \pgfextra{\typeout{\n1,\n2,\x1,\y1}} (\tikztotarget) node[ #1 arrow, % single arrow, #1 arrow head extend=1ex, draw, minimum height=\n2-\pgflinewidth, % minimum width=5ex, % minimum height=13ex, inner sep=1ex, %text height=1ex, %text depth=0ex, rotate=\n1,% anchor=east,% ehgemals: tip bei single / tip 1 bei double arrow ]{} }}, Pfeil/.default=single } \begin{document} \begin{tikzpicture} \coordinate (A) at (0,-1); \coordinate (B) at (2,2); \draw (A) edge[Pfeil] (B); \draw[red] (A) -- (B); \draw[] ([xshift=2cm]A) edge[Pfeil=double] ([xshift=2cm]B); \end{tikzpicture} \end{document} [1]: https://texwelt.de/wissen/upfiles/Screen_Shot_2018-07-05_at_2.59.21_PM.png [2]: https://texwelt.de/wissen/upfiles/Screen_Shot_2018-07-05_at_2.59.21_PM.png [3]: https://texwelt.de/wissen/upfiles/55555555_176.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

06 Jul '18, 07:32

Gel%C3%B6scht's gravatar image

Gelöscht
(ausgesetzt)

Verwandt mit meiner Antwort auf die verlinkte Frage und teilweise basierend auf [https://tex.stackexchange.com/a/432147/121799](https://tex.stackexchange.com/a/432147/121799). Wenn Du `calc` lädst, kannst Du Dir all die `\pgfgetlastxy` und `\pgfmathsetmacro` sparen, und alles in einen Style für einen `edge` path stecken. Du brauchst dann nur noch `\draw (A) edge[Pfeil] (B);` zu sagen. \documentclass[margin=5mm]{standalone} \usepackage{tikz} \usetikzlibrary{shapes.arrows,calc} \tikzset{Pfeil/.style=% {to path={let \p1 = ($(\tikztotarget)-(\tikztostart)$), \n1 = {int(mod(scalar(atan2(\y1,\x1))+360, 360))}, % calculate angle in range [0,360) \n2 = {veclen(\x1,\y1)} in in \pgfextra{\typeout{\n1,\n2,\x1,\y1}} (\tikztotarget) node[draw,single arrow, minimum height=\n2-\pgflinewidth, % % minimum width=5ex, %minimum height=13ex, inner sep=1ex, %text height=1ex, %text depth=0ex, single arrow head extend=1ex, rotate=\n1, % not shape border rotate, because that for some reason didn't work anchor=tip, % anchor=tip added, pos=0.5 removed ]{} }}} \begin{document} \begin{tikzpicture} \coordinate (A) at (0,0); \coordinate (B) at (2,2); \draw (A) edge[Pfeil] (B); \draw[red] (A) -- (B); \end{tikzpicture} \end{document} [![alt text][1]][1] [1]: https://texwelt.de/wissen/upfiles/Screen_Shot_2018-07-05_at_2.59.21_PM.pnghttps://texwelt.de/wissen/upfiles/Screen_Shot_2018-07-05_at_2.59.21_PM.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

05 Jul '18, 15:22

Gel%C3%B6scht's gravatar image

Gelöscht
(ausgesetzt)

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×