Is there any way to specify the size of an arrowhead in printer's points? I'm looking for something that would have similar functionality to AbsolutePointSize, AbsoluteThickness, or AbsoluteDashing, except for Arrowheads.

The best I have come up with is to use something like Arrowheads[1.5/???], where ??? is the width of the Graphics object. However, this doesn't work if I don't know the width of the graphic. I've played around with using Offset or Scaled, but I haven't been able to get them to work for this purpose.

Edit: Thanks for the suggestions so far. A few comments:

So far I have been using ImageSize combined with the Arrowheads[1.5/???], but this is annoying for two reasons. First, it makes it impossible to set the height of the graphic using ImageSize -> {{10000},{hmax}}. Second, it means that I have to pass the ImageSize as a parameter through a series of functions that I have written.

The sizes Tiny, Small, Medium, and Large are exactly what I'm looking for, except that they don't seem to work with custom arrowhead graphics. In particular, the specification

It won't give you full control over the size, but if you specify the size of the arrow heads as either Large, Medium, Small, or Tiny, the absolute size of the arrow heads will be independent of the width of the image. For example, if you evaluate

Graphics[{Arrowheads[ Medium], Arrow[{{0, 0}, {1, 1}}]}]

and rescale the image, the size of the arrow will stay the same:

As Szabolcs mentioned, you could use Text for the arrowhead specification to get a fixed size. You can actually wrap any Graphics inside Text, not just strings, so this would be a way to get an arrowhead with a custom shape and a fixed size independent of scaling. For example, to get an arrowhead with a length of 20 pixels you could do something like

Thanks -- this has been my strategy so far, but it isn't working for a few reasons that I put in my edit above. The main problem is that I want to use ImageSize -> {{10000},{hmax}} to set the height of the graphic instead of the width.
–
Jim BelkJan 27 '12 at 2:09

Here I used normal text for the arrowhead, with a character that looks like a triangle. I needed to correct for the offset by 0.15 vertically to align the arrowhead on the line, but it appears to work robustly (independent of scaling). You can set the size using FontSize.

Update Unfortunately this is not robust to rotation. The head becomes slightly misplaced.

Mathematica is a registered trademark of Wolfram Research, Inc. While the mark is used herein with the limited permission of Wolfram Research, Stack Exchange and this site disclaim all affiliation therewith.