I'm looking to plot the surface gradient vector field
$$\left \langle \frac{f_x}{\|\nabla f\|}, \frac{f_y}{\|\nabla f\|}, \|\nabla f\| \right \rangle$$
but only at points on the the surface $(x,y,f(x,y)$.
plotvectorfield3d will plot this field everywhere in 3D. I want to restrict this to the surface only.
Right now, I can plot these vectors individually by iterating along the surface, but I am wondering if someone has already tackled this more efficiently, perhaps with parameters on how to iterate.
Further, it would be nice to generalize this to directional derivatives for any unit vector $\mathbf{u} = \left \langle a, b \right \rangle$.