Makie 3D arrows scale in a strange fashion

I’m currently using a plot with a lot of arrows drawn into it. Sometimes I want to have both the length of the arrows and their size (cylinder / cone diameter in 3D) be proportional to a given value.
The following plot superimposes two results only differing in their scaling of the arrowsize (diameter).

From this plot one can see that the conical arrow head is not taken into account for the length of the arrow, but only the tail. Is this behavior intended, is it documented (did not find it), and is there a way to circumvent that behavior and have a constant overall length arrow with the current Makie options ?

@jules, a gentle bump, in case you have a suggestion.

@ffreyer wrote most of the new arrow recipe :wink:
A github issue might also get more attention from the maintainers.

Haha, I guess I did not want to add and issue given that you seem already pretty busy in case I just missed something simple !

I guess this was not intentional. Maybe it should be changed, the only question is what to do in the edge case where the arrow head is longer than the distance between the points.

Just to help reproduce, here is an example showing other surprising behavior (to me of course)

using GLMakie


fig = Figure()
ax = LScene(fig[1,1])
# Has to be added otherwise first arrows with single arrow fails
scatter!(ax,Point3f[(2,0,0),(0,2,0),(0,0,2)])
# Effect of arrowsize parameter
arrows!(ax,Point3f[(0,0,0)],Point3f[(1,0,0)],color = RGBAf(255,0,0,1),arrowsize = 0.5)
arrows!(ax,Point3f[(0,0,0)],Point3f[(1,0,0)],color = RGBAf(0,255,0,0.5),arrowsize = 1)
# Just for fun effect of align parameter (surprising ?)
poss = (:head, :lineend, :tailend, :headstart, :center,:origin)
for (z,pos) in enumerate(poss)
arrows!(ax,Point3f[(0,0,z)],Point3f[(1,0,0)],color = RGBAf(0,0,255,0.5),align=pos,arrowsize = 1)
end
display(GLMakie.Screen(),fig)

this gives

I would argue that the problem is the same today, as increasing the “size” of the arrow head also increases the length of the arrow, if you specific this size as a scalar.
In any case, setting a very large arrow head may not be relevant sometimes.

@sdanisch Just created an issue !