Back to main page
Back to draw contents
This section shows how to draw parametric curves and surfaces with the draw package.
Parametric and explicit functions.
draw2d(color = ReD, /* case insensitive */
explicit(exp(x),x,-1,3),
color = "#0000Ff", /* blue, in doubled quoted hexadecimal */
key = "This is the parametric one!!",
parametric(2*cos(rrr),rrr^2,rrr,0,2*%pi))$
The Möbius band.
draw3d(xu_grid = 50,
yv_grid = 15,
surface_hide = true,
terminal = eps,
parametric_surface(cos(a)*(3+b*cos(a/2)),
sin(a)*(3+b*cos(a/2)),
b*sin(a/2), a,-%pi,%pi,b,-1,1) )$
Sea shell.
draw3d(title = "Sea shell",
pic_width = 300,
pic_height = 600,
terminal = png,
xu_grid = 100,
yv_grid = 25,
rot_vertical = 100,
rot_horizontal = 20,
surface_hide = true,
color = blue,
parametric_surface(0.5*u*cos(u)*(cos(v)+1),
0.5*u*sin(u)*(cos(v)+1),
u*sin(v) - ((u+3)/8*%pi)^2 - 20,
u, 0, 13*%pi, v, -%pi, %pi) )$
The torus and the sphere.
draw3d(surface_hide = true,
pic_height = 400,
pic_width = 400,
terminal = png,
title = "Two parametric surfaces",
color = "dark-khaki",
parametric_surface((1-0.2*cos(v))*cos(u),
(1-0.2*cos(v))*sin(u),
0.2*sin(v), u,0,2*%pi,v,0,2*%pi),
color = "midnight-blue",
parametric_surface(cos(u)*cos(v),
cos(u)*sin(v),
1+sin(u), u,-2*%pi,2*%pi,v,0,2*%pi) )$
An enhanced torus.
draw3d(palette = [7,-15,3],
enhanced3d = (1-0.2*cos(v))*sin(u),
parametric_surface(
(1-0.2*cos(v))*cos(u),
(1-0.2*cos(v))*sin(u),
0.2*sin(v),
u, 0, 2*%pi, v, 0, 2*%pi)) $
Interlocking enhanced tori.
draw3d(enhanced3d = sin(u)+cos(v),
terminal = eps_color,
palette = [8,4,3],
eps_height = 15,
eps_width = 15,
parametric_surface(cos(u)+.5*cos(u)*cos(v),
sin(u)+.5*sin(u)*cos(v),
.5*sin(v),
u, -%pi, %pi,
v, -%pi, %pi),
parametric_surface(1+cos(u)+.5*cos(u)*cos(v),
.5*sin(v),
sin(u)+.5*sin(u)*cos(v),
u, -%pi, %pi,
v, -%pi, %pi)) $
Archimedes would like this one. A cylinder circumscribed on a sphere.
draw3d(terminal = eps_color,
eps_width = 8,
eps_height = 8,
surface_hide = true,
xtics = none,
ytics = none,
ztics = none,
axis_3d = false,
rot_vertical = 48,
rot_horizontal = 22,
color = blue,
parametric_surface(cos(a)*cos(b),
cos(b)*sin(a),
sin(b), a,0,2*%pi,b,-%pi/2,%pi/2),
color = cyan,
parametric_surface(1.01*cos(a),1.01*sin(a),z,a,0,3/2*%pi,z,-1,1),
xu_grid = 25,
yv_grid = 5,
parametric_surface(1.01*r*cos(a),1.01*r*sin(a),1,a,0,3/2*%pi,r,0,1),
parametric_surface(1.01*r*cos(a),1.01*r*sin(a),-1,a,0,3/2*%pi,r,0,1) );
Parametric 3D curves can be rendered with a colored 4th dimension. This feature is a contribution by Joan Pau Beltran. It will be present in Maxima 5.19, or you can download the latest version from cvs.
draw3d( terminal = wxt, color = blue, nticks = 60, line_width = 3, enhanced3d = (u-1)^2, parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2)) $
Back to main page
Back to draw contents