How do I go about calculating and plotting the surface normals at the boundary of a Graphics3D object?
For example, consider this custom-defined ParametricPlot3D with boundaries (see Get Graphics3D object for only part of a cone):
boundedOpenCone[centre_, tip_, Rc_, vec1_, vec2_, sign_] :=
Module[{v1, v2, v3, e1, e2, e3},
(* function to make 3d parametric plot of the section of a cone \
bounded between two vectors: tvec1 and tvec2*)
{v1, v2, v3} = # & /@ HodgeDual[centre - tip];
e1 = Normalize[v1];
e3 = Normalize[centre - tip];
e2 = Cross[e1, e3];
ParametricPlot3D[
stip + (1 - s)(centre + Rc(Cos[t]e1 + Sin[t]e2)), {t, 0,
2 [Pi]}, {s, 0, 1}, Boxed -> False, Axes -> False, Mesh -> None,
RegionFunction ->
Function[{x, y, z},
RegionMember[
HalfSpace[signCross[vec1 - tip, vec2 - tip], tip], {x, y, z}]],
PlotStyle -> ColorData["Rainbow"][1]]
]
vec1 = {1, 0, 0}; vec2 = (1/Sqrt[2])*{1, 1, 0};
coneTip = {0, 0, 3};
cvec = {0, 0, 0};
Rc = Norm[vec1 - cvec];
boundedOpenCone[cvec, coneTip, Rc, vec1, vec2, -1];
Some great code for finding the normals everywhere on the surface can be found here: Plot of gradient over a surface
But I would like to get a list of the surface normal vectors, and plot them, only along the boundary of the domain.
Thank you in advance.






o,tvec1,tvec2are missing. – xzczd May 22 '21 at 03:13