Re: Re: 3D Plot
- To: mathgroup at smc.vnet.net
- Subject: [mg2389] Re: [mg2364] Re: [mg2302] 3D Plot
- From: Preston Nichols <nichols at godel.math.cmu.edu>
- Date: Tue, 31 Oct 1995 23:23:30 -0500
Hans Friedrich Steffani wishes to plot the image of the vector-valued function of three variables (x1(t1,t2,t3), x2(t1,t2,t3), x3(t1,t2,t3)) for 0<t1<t1max, 0<t2<t2max, 0<t3<t3max. Richard Mercer's approach (copied below) will give the desired result only if the boundary surfaces of the domain are mapped to the boundary of the image of (x1(t1,t2,t3), x2(t1,t2,t3), x3(t1,t2,t3)). In general, this does not happen, because the solid region in the t-space might get "folded" into itself when it is mapped into x-space, in such a way that boundary points are mapped to the interior of the image solid. Even so, using ParametricPlot3D as Richard describes might still provide useful information. It is possible to test for this kind of "folding" using the Jacobian, which is the determinant of the matrix of the partial derivatives of the mapping. One way to compute the Jacobian is: t = {t1,t2,t3}; x = {x1,x2,x3}; J = Det[Table[Evaluate[D[ x[[i]], t[[j]] ]], {i,3},{j,3}]] If the Jacobian is nonzero for all points in the domain, "folding" does not happen, and Richard Mercer's method will work nicely. If the Jacobian is zero at some points, "folding" may occur, and at least there will be a "crease" or "crimp" in the image. Even as simple a mapping as x[{t1,t2,t3}]] := {t1^2,t2^2,t3^2}, t1min = t2min = t3min = -1, t1max = t2max = t3max = 1, will "fold". I wouldn't be surprised if someone has written a package to deal with this situation. I have some rough ideas of how such a package might be built; if anyone is interested, let me know. Preston Nichols Department of Mathematics Carnegie Mellon University ---------------------------------------------------------- Begin forwarded message: >From: Richard Mercer <richard at seuss.math.wright.edu> >To: mathgroup at smc.vnet.net >Subject: [mg2364] Re: [mg2302] 3D Plot > > There is a vector > (x1(t1,t2,t3), x2(t1,t2,t3), x3(t1,t2,t3)) > now I want > to plot the 3D figure for > 0<t1<t1max, 0<t2<t2max, 0<t3<t3max. > > How can this be done? > > Hans Friedrich Steffani There is no command or graphics primitives for plotting "solid" 3-D objects, only for plotting surfaces. So what you need to do is plot the boundary surfaces of your object. As I understand it, they would be the following six surfaces: (x1(0,t2,t3), x2(0,t2,t3), x3(0,t2,t3)); 0<t2<t2max, 0<t3<t3max (x1(t1max,t2,t3), x2(t1max,t2,t3), x3(t1max,t2,t3)); 0<t2<t2max, 0<t3<t3max (x1(t1,0,t3), x2(t1,0,t3), x3(t1,0,t3)); 0<t1<t1max, 0<t3<t3max (x1(t1,t2max,t3), x2(t1,t2max,t3), x3(t1,t2max,t3)); 0<t1<t1max, 0<t3<t3max (x1(t1,t2,0), x2(t1,t2,0), x3(t1,t2,0)); 0<t1<t1max, 0<t2<t2max (x1(t1,t2, t3max), x2(t1,t2, t3max), x3(t1,t2, t3max)); 0<t1<t1max, 0<t2<t2max Each of these surfaces can be plotted using ParametricPlot3D. Actually, you can plot them all in a single ParametricPlot3D command, but I suggest you try them one at a time first to make sure things are working out. Richard Mercer