0
$\begingroup$

I do this:

reg = ImplicitRegion[
       u^2 + v^2 + .5 u v + .23 u^3 (v + 1) < .85 && -1.3 <= u <= 1.0, {u,
         v}];
    r[u_, v_] = {u, v + u, u v};
    surface = ParametricPlot3D[r[u, v], {u, v} \[Element] reg];
    endpoints = {{0.3, -0.671, -0.266}, {0.35, -0.615, -0.310}};
    Show[
     Graphics3D[{Arrowheads[.08], Arrow[endpoints]}, 
      AxesLabel -> {"x", "y", "z"}],
     surface,
     AxesLabel -> {"x", "y", "z"}
     ]

and get this:

enter image description here

So, the command Show[] truncates the arrows, even when they are placed first in the list of objects to display -- whereas, by the Mathematica manual,

Show[Subscript[g, 1],Subscript[g, 2],[Ellipsis]] or Show[{Subscript[g, 1],Subscript[g, 2],[Ellipsis]}] concatenates the graphics primitives in the Subscript[g, i], effectively overlaying the graphics.

What is wrong in my understanding here?

Also, why doesn't Show[] show axes labels, even when explicitly asked to show them -- whereas, again by the Mathematica manual,

Options explicitly specified in Show override those included in the graphics expression

?

It looks to me like Show[] is not working as described. Any help will be appreciated.

$\endgroup$
5
  • 2
    $\begingroup$ Please post a representative self contained code in your question. $\endgroup$
    – Feyre
    Commented Jan 3, 2017 at 19:59
  • $\begingroup$ @Feyre : Done. Sorry, I should have done it right away. $\endgroup$ Commented Jan 3, 2017 at 20:47
  • 2
    $\begingroup$ you need to add Axes -> True to see the labels. (or put the plot first). I'm not sure what you think is wrong with the arrow, its effectively just an arrow head since the line part is very very short. $\endgroup$
    – george2079
    Commented Jan 3, 2017 at 20:56
  • $\begingroup$ You might try adding PlotStyle -> Opacity[.4] (to the plot) then you will see the arrow even if partly covered by the surface. $\endgroup$
    – george2079
    Commented Jan 3, 2017 at 21:03
  • $\begingroup$ @george2079 : Thank you for your comments. Axes->True does work to show the axes. The arrow is short by design: it is intended as an approximation to an arrow tangent to the bounding curve (not shown above). Decreasing the opacity does partly show the truncated part of the arrow. $\endgroup$ Commented Jan 3, 2017 at 21:53

1 Answer 1

1
$\begingroup$

I have received a response from Wolfram Support, stating, in part, the following:

You need to use Tube to get 3D arrows to correct the problem you were having and you need to specifically call for axes to have them labeled.

Harry Calkins Support Engineer Wolfram Technology Group [email protected]

This provides an answer to my questions.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.