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.enter image description here

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?

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.