# Smoother cones and better 3D arrows in Graphics

I have this code:

  openCone[{{x1_, y1_, z1_}, {x2_, y2_, z2_}}, r_] := {CapForm[None],
Tube[{{x1, y1, z1}, {x2, y2, z2}}, {r, 0}]}
Manipulate[
Lcone = Graphics3D[{EdgeForm[Directive[Thick, Dashed, Black]],
LightGray, openCone[{{0, 0, 5}, {0, 0, 0}}, 4]}, Boxed -> False,
ViewPoint -> {5, 5, 2}];
Arrow[Tube[{{0, 0, 0}, {Sqrt[4^2 - \[Rho]L^2], \[Rho]L, 5}},
0.05]]}];
Scone = Graphics3D[{EdgeForm[Directive[Thick, Dashed, Black]], Gray,
openCone[{{0, 0, 7}, {0, 0, 0}}, 3]}, Boxed -> False];
Arrow[Tube[{{0, 0, 0}, {Sqrt[3^2 - \[Rho]S^2], \[Rho]S, 7}},
0.05]]}];
Arrow[Tube[{{0, 0, 0}, {0, 0, Sqrt[5^2 + 7^2]}}, 0.05]]}];
Show[Lcone, Lvec, Scone, Svec, Jvec], {\[Rho]L, 1.12}, {\[Rho]S,
2.96}]


That produces this plot:

I would like to know whether it's possible:

• to make the cone smoother? You can see the triangulation

• How do I properly make the arrowhead match with the top of the arrow?

We can have custom arrowhead placements with the following specs:

The tubes can be rendered at higher fidelity with Method -> {"TubePoints" -> pts}.

openCone[{{x1_, y1_, z1_}, {x2_, y2_, z2_}}, r_] := {CapForm[None],
Tube[{{x1, y1, z1}, {x2, y2, z2}}, {r, 0}]}

{Graphics3D[{EdgeForm[], Cone[{{0, 0, 0}, {1, 0, 0}}, .25]}], 0}}}]

Manipulate[
Lcone = Graphics3D[{EdgeForm[Directive[Thick, Dashed, Black]],
LightGray, openCone[{{0, 0, 5}, {0, 0, 0}}, 4]}, Boxed -> False,
ViewPoint -> {5, 5, 2}];
Arrow[Tube[{{0, 0, 0}, {Sqrt[4^2 - \[Rho]L^2], \[Rho]L, 5}},
0.05]]}];
Scone = Graphics3D[{EdgeForm[Directive[Thick, Dashed, Black]], Gray,
openCone[{{0, 0, 7}, {0, 0, 0}}, 3]}, Boxed -> False];
Arrow[Tube[{{0, 0, 0}, {Sqrt[3^2 - \[Rho]S^2], \[Rho]S, 7}},
0.05]]}];
Arrow[Tube[{{0, 0, 0}, {0, 0, Sqrt[5^2 + 7^2]}}, 0.05]]}];
Show[Lcone, Lvec, Scone, Svec, Jvec, Method -> {"TubePoints" -> 400}], {\[Rho]L, 1.12}, {\[Rho]S,
2.96}]


• Thanks, could you forward a documentation update request? "TubePoints" is not mentioned for Graphics3D Method.
– Kuba
Dec 12, 2018 at 13:20
• In my prerelease of 12 it's mentioned in the Graphics3D Details & Options, which is how I found it. i.stack.imgur.com/i5UZ0.png Dec 12, 2018 at 13:25
• Sweet! Can't use v12 at the moment because FE goes crazy on my Win10.
– Kuba
Dec 12, 2018 at 13:32
• Hey thanks for the answer. I literally copied and pasted your code, but my arrows still come up like in picture. With part of the body sticking out of the head... Dec 12, 2018 at 19:29
• Hmm, does changing arrowHeads to Arrowheads[{{size, 1, ... fix things? Dec 12, 2018 at 19:31