MathGroup Archive 1995

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: 3D Plot

  • To: mathgroup at
  • Subject: [mg2389] Re: [mg2364] Re: [mg2302] 3D Plot
  • From: Preston Nichols <nichols at>
  • 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>
>To: mathgroup at
>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

  • Prev by Date: Comparison of MMA on Various Machines
  • Next by Date: Re: Mathematica 2.2.3 under Win95
  • Previous by thread: Re: Comparison of MMA on Various Machines
  • Next by thread: Re: Mathematica 2.2.3 under Win95