geom3d - projection from 3D on 2D after a 3D plot
After having used a 3D plot function such as plot3d, plot3d1 or param3d, geom3d gives the mapping between a point in 3D space (x1(i),y1(i),z1(i)) and the corresponding point (x(i),y(i)) in the projected 2D plan. Then all the 2D graphics primitives working on (x,y) can be used for superposition on the 3D plot.
deff("[z]=surf(x,y)","z=sin(x)*cos(y)") t=%pi*(-10:10)/10; // 3D plot of the surface fplot3d(t,t,surf,35,45,"X@Y@Z") // now (t,t,sin(t).*cos(t)) is a curve on the surface // which can be drawn using geom3d and xpoly [x,y]=geom3d(t,t,sin(t).*cos(t)); xpoly(x,y,"lines") // adding a comment [x,y]=geom3d([0,0],[0,0],[5,0]); xsegs(x,y) xstring(x(1),y(1),"point (0,0,0)")