(%i1) | load(draw)$ |
(%i2) | load(eigen)$ |
(%i3) | Fx(u, v) := v * cos(u*%pi)$ |
(%i4) | Fy(u, v) := v * sin(u*%pi)$ |
(%i5) | Fz(u, v) := u$ |
(%i6) |
vDu(u, v) := [ at(diff(Fx(x, y), x, 1), [x=u,y=v]), at(diff(Fy(x, y), x, 1), [x=u,y=v]), at(diff(Fz(x, y), x, 1), [x=u,y=v]) ]$ |
(%i7) |
vDv(u, v) := [ at(diff(Fx(x, y), y, 1), [x=u,y=v]), at(diff(Fy(x, y), y, 1), [x=u,y=v]), at(diff(Fz(x, y), y, 1), [x=u,y=v]) ]$ |
(%i8) | cross (v1, v2) := determinant(matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]], v1, v2))$ |
(%i9) | Normal(u, v) := unitvector(cross(vDu(u, v), vDv(u, v)))$ |
(%i10) | Light(u, v) := abs(Normal(u, v) . [1, -1, 1])$ |
(%i11) |
wxdraw3d( enhanced3d=[Light(u, v) * 0.15 + 0.5, u, v], colorbox=false, palette=gray, xu_grid = 100, yv_grid = 100, parametric_surface( Fx(u, v), Fy(u, v), Fz(u, v), u, 0, 3, v, 0, 1 ) )$ |