import solids; size(8cm,0); currentprojection=orthographic((2, 1, 2)); revolution r = cylinder ((0, 0, 0), 1, -10, X); r.draw(); draw("$x$",O--X,Arrow); draw("$y$",O--Y,Arrow); draw("$z$",O--Z,Arrow); triple z=relpoint(relpoint(r.skeleton().longitudinal[0],0.5)-- relpoint(r.skeleton().longitudinal[1],0.5),0.5); // Project Label onto plane through point O with normal cross(u,v): // Label project(Label L, triple u, triple v, triple O=O, // projection P=currentprojection) label(scale(2.5)*rotate(180)*project("This is not a cylinder",X,Y,shift(z)*(0,0,1)));