On Apr 21, 4:29 pm, kokos <artb... at interia.pl> wrote:
> How to get arrows on the ends of axes in ParametricPlot3D ? I try some
> combinations of options and directives without success.
> From other side how to combine Graphics3D with Arrows and
> ParametricPlot3D to have the same result:
> 3D surface and axes with arrows in 3D ?
I don't know why the Arrowheads directive does not work in 3D...
anyone else got any ideas??
Anyway, here's my quick kludge - it could be made more elegant:
A 2D example with Arrowheads ( readers from Australia will recognize
the ABC logo )
ParametricPlot[{Cos[u],Sin[3u]},{u,0,2\[Pi]},PlotStyle-
>Thick,AxesLabel->{"x","y"},Ticks->False,AxesStyle-
>Directive[Dotted,Italic,Arrowheads[.05]]]
The 3D version of the above: -- the Arrowheads do not work in this
case.
p3d=ParametricPlot3D[{Cos[u],Sin[3u]+Cos[3v],Sin[v]},{u,0,2\[Pi]},{v,-\
[Pi],\[Pi]},Mesh->None,Boxed->False,
AxesLabel->{"x","y","z"},Ticks-
>False,AxesStyle->Directive[Dotted,Italic,Arrowheads[.5]],
AxesEdge -> {{-1, -1}, {-1, -1},
{-1, -1}}]
Extract the range and construct the coordinate list:
pr=PlotRange * PlotRangePadding/.Options[p3d]/.Scaled->(2#+1&)
axes=Table[{pr\[Transpose][[1]],Table[pr\[Transpose]
[[KroneckerDelta[i,j]+1,i]],{i,1,3}]},{j,1,3}]
Put it together:
Show[p3d, Graphics3D[Arrow /@ axes]]
Simon