# Arrowhead scale keeps changing as figure is rotated

I am using a combination of Plot3D and Graphics3D to plot a surface based on a function and a primitive Arrow object.

Show[Plot3D[x^4 y + x y^2, {x, 0, 3}, {y, 0, 3},
PlotRange -> {0, 300}],
Graphics3D[{Arrowheads[0.005], Arrow[{{0, 0, 0}, {2, 2, 200}}]}]]


Note this is one line of code in Mathematica but I have divided it into 3 lines here for clarity.

The output does show the desired result, namely a surface with an arrow pointing from {0,0,0} to {2,2,200} but the arrowhead is absolutely huge and varies in size as I rotate the figure in 3D.

Using the Arrowheads[]command does make the arrowhead relatively smaller but the variability is still there even as I rotate the image very slightly.

Why does Mathematica not automatically scale these primitive objects and how can I fix this?

• Does it solve your problem Arrowheads not falling in line – Sumit Dec 26 '16 at 12:34
• @Sumit It does not. The problem is the distortion of box ratios. – Feyre Dec 26 '16 at 13:14