A while back I ran across the following function:
double_integral_draw (z, x, x0, x1, y, y0, y1) :=
block([xval, yval, cur, lin1, lin2, opt1, opt2, opt3, u, n: 50],
cur: makelist(
(yval: float(k/n)*(y1-y0) + y0,
parametric(u, yval, subst([x=u, y=yval], z),
u, subst(y=yval, x0), subst(y=yval, x1))),
k, 1, n),
lin1: makelist(
(yval: float(k/n)*(y1-y0) + y0,
xval: subst(y=yval, x0),
points([[xval, yval, 0],
[xval, yval, subst([x=xval, y=yval], z)]])),
k, 1, n),
lin2: makelist(
(yval: float(k/n)*(y1-y0) + y0,
xval: subst(y=yval, x1),
points([[xval,yval,0],
[xval,yval,subst([x=xval, y=yval], z)]])),
k, 1, n),
opt1: [xlabel="x",ylabel="y",color=blue, xyplane=0],
opt2: [points_joined=true, point_size=0,color=red],
opt3: [color=green] ,
apply(draw3d, append(opt1, cur, opt2, lin1, opt3, lin2)) ) $
Having loaded the "draw" function, one could then
invoke the double_integral_draw function shown above, via a command such as
double_integral_draw (2-y, x, 0, 4-y^2, y, 0, 2) $
and get a nice 3D pic of the "situation".
This process does not seem to work anymore under the new Maxima version and probably needs a very simple tweak.
Could someone help?
Sincerely
Guerrieri