These objects aren't yet implemented (don't forget all this is
experimental work), but we have parametric_surface.
The key idea is to transform surfaces in spherical or cylindrical
coordinates into a parametric surface in cartesian coordinates:
load("draw") $
draw_renderer : vtk $
spherical(r,az,minaz,maxaz,ze,minze,maxze) :=
parametric_surface(
r*sin(ze)*cos(az),
r*sin(ze)*sin(az),
r*cos(ze),
az, minaz, maxaz,
ze,minze,maxze ) $
cylindrical(r, z, minz, maxz, azi, minazi, maxazi) :=
parametric_surface(
r*cos(azi),
r*sin(azi),
z,
z, minz, maxz,
azi, minazi, maxazi ) $
/* Cephalopod Nautilus */
draw3d(
color = white,
spherical(a+z,a,0,3*%pi,z,0,%pi))$
/* A cone and a semi-cylinder inside a transparent sphere */
draw3d(
color = blue,
cylindrical(z,z,-2,2,az,0,2*%pi), /*cone*/
color = brown,
cylindrical(3,z,-2,2,az,0,2*%pi), /*cylinder*/
color = green,
opacity = 0.2,
cylindrical(sqrt(25-z^2),z,-5,5,az,0,2*%pi) /*sphere*/ )$
--
Mario
Thanks Mario, this is very helpful. I am putting these two functions in my
maxima-init.mac.