17

I'm working with some graphs, and I'd like to indicate a certain orientation of edges incident on a vertex. With some help I've managed to get this far:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}

\begin{document}

\begin{tikzpicture}
   \node[style={circle,draw=black,inner sep=1.4pt,fill}] (a) at (0,0) {};
   \draw[->,>=latex',dashed,line width=.8pt] (.25,0)  arc (0:-340:.25);
\end{tikzpicture}

\end{document}

So I have a dashed circular path made with the arc path and a latex stealth arrow tip around a central node.

enter image description here

As is clear from the image, the arrow tip is fairly small and not symmetrical about the path it's on. If I'm not mistaken, the asymmetry is because the anchor of the arrow tip is in the very tip of the tip itself, and that is right on the circular path, with the rest of the tip centered on a tangent to the path. The size is a separate issue. So:

  • How could I reposition the arrow tip so that it is symmetrical on the circular path with respect to its graphical center?

By "graphical center" I mean the median of the line segment, along the central axis from the tip, ending where the shape of the arrow tip ends.

  • How could I make the arrow tip bigger?

An ad hoc fix I've used (but haven't fully understood) for this latter point is

\draw[decoration={markings,mark=at position 0.999 with {\arrow[very thick]{>}}},
      postaction={decorate},shorten >=1.5pt] 

with the decorations.markings tikz package. The position is set to 0.999 because at 1 with sharply curved paths the tip sometimes does not appear at all. This takes the arrow tip of a very thick styled path, but are there other arrow tips (perhaps from 3rd party packages) that are noticeably bigger? Or maybe just a way to magnify only the tip?

Edit: Point of making tip larger has been answered by simply drawing a larger shape in the shape of the tip and using it as an arrowhead. Works nicely because of the many adjustable parameters. Thanks to Luigi in the comments.

2
  • 1
    The asymmetry is due to the fact that the design (the definition) of the tip is straight, while the path is curved. If you line up the tip, the nock will be out of the axis and vice versa. The longer is the arrow, the clearer is this effect. You have to design a new curved arrow tip or you could try to reach a compromise aligning the tip with a chord of the same length instead of the tangent. For the tip size, you can see my answer here.
    – Luigi
    Oct 10, 2012 at 7:46
  • To get a bigger arrow tip, you can see also this newer answer. I'm still working on it.
    – Luigi
    Nov 3, 2012 at 12:05

2 Answers 2

8

As a workaround to your first question, you can add a (very) small segment to choose the orientation of the arrow:

enter image description here

\documentclass[margin=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}
   \node[style={circle,draw=black,inner sep=1.4pt,fill}] (a) at (2,3) {};
   \draw[->,>=latex',dashed,line width=.8pt]
   (a) ++(.25,0)  arc (360:30:.25) -- ++(-45:1pt);
\end{tikzpicture}
\end{document}
1
  • My chapeau off to you - a simple and adjustable solution. My own approach was to take Luigi's larger arrow solution and rotate all the anchor points a certain angle for a new definition. I succeeded in Mathematica, but failed in Sage, even through the code is heuristically identical. Many thanks! Oct 10, 2012 at 13:41
7
  • Turning: already loading the bending library turns the arrow in the right direction.
  • Resizing: You can change the size via an arrow keys option, such as >={LaTeX[length=4pt]}.
  • Bending: You could bend the arrow to better fit the circle shape.

All requires at least TikZ 3.0.

To compare:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,bending}
\begin{document}
\begin{tikzpicture}
   \node[style={circle,draw=black,inner sep=1.4pt,fill}] (a) at (0,0) {};
   \draw[->,>={LaTeX[length=4pt]},dashed,line width=.8pt] (.25,0)  arc (0:-340:.25);
\end{tikzpicture}
\begin{tikzpicture}
   \node[style={circle,draw=black,inner sep=1.4pt,fill}] (a) at (0,0) {};
   \draw[->,>={LaTeX[length=4pt,bend]},dashed,line width=.8pt] (.25,0)  arc (0:-340:.25);
\end{tikzpicture}
\end{document}

Turned and bend arrow

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .