MathGroup Archive 2005

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

Search the Archive

Re: Problem with ListPlotVectorField3D

  • To: mathgroup at smc.vnet.net
  • Subject: [mg56093] Re: [mg56060] Problem with ListPlotVectorField3D
  • From: "David Park" <djmp at earthlink.net>
  • Date: Fri, 15 Apr 2005 04:47:37 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Alain,

You could use

ListPlotVectorField3D[vecfield, VectorHeads -> True, PlotRange -> All];

It probably makes sense to use Union on your list of vectors, simply to
avoid double plotting. It doesn't seem to cause a problem here but sometimes
it does cause problems in the speed of 3D rendering.

I wouldn't use ListPlotVectorField3D at all. If you have DrawGraphics you
could try the following to obtain much prettier arrows.

Needs["DrawGraphics`DrawingMaster`"]

plot1 =
    Draw3DItems[
      {AbsoluteThickness[2], SurfaceColor[Gold],
        EdgeForm[ColorMix[Gold, Black][0.5]],
        Arrow3D[First[#], First[#] + 2Last[#], HeadScaling3D -> 1.5,
              HeadLength3D -> 0.3, HeadWidth3D -> 0.7] & /@
Union[vecfield]},
      NeutralLighting[0.3, 0.5, 0.1],
      Background -> Linen,
      PlotRange -> All,
      BoxStyle -> Gray,
      ImageSize -> 500];

SpinShow[plot1, SpinOrigin -> {0, 0, 0}, Frames -> 48]
SelectionMove[EvaluationNotebook[], All, GeneratedCell]
FrontEndTokenExecute["OpenCloseGroup"]; Pause[0.5];
FrontEndExecute[{FrontEnd`SelectionAnimate[200, AnimationDisplayTime -> 0.1,
      AnimationDirection -> Forward]}]

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/


From: Alain Cochard [mailto:alain at geophysik.uni-muenchen.de]
To: mathgroup at smc.vnet.net


Mathematica 4.0 for Linux
Copyright 1988-1999 Wolfram Research, Inc.
 -- Motif graphics initialized --

In[1]:= <<Graphics`

   Here is a vector field:

In[2]:= vecfield={{{0, 0, 4}, {1, 0, 0}}, {{0, 0, 4}, {1, 0, 0}}, {{0, 0,
4}, {1, 0, 0}},
 {{0, 0, 4}, {1, 0, 0}}, {{0, 0, 4}, {1, 0, 0}}, {{0, 0, 4}, {1, 0, 0}},
 {{0, 0, 4}, {1, 0, 0}}, {{4, 0, 0}, {0, 0, 1}},
 {{2, 2*Sqrt[3], 0}, {0, 0, 1/2}}, {{-2, 2*Sqrt[3], 0}, {0, 0, -1/2}},
 {{-4, 0, 0}, {0, 0, -1}}, {{-2, -2*Sqrt[3], 0}, {0, 0, -1/2}},
 {{2, -2*Sqrt[3], 0}, {0, 0, 1/2}}, {{4, 0, 0}, {0, 0, 1}},
 {{0, 0, -4}, {-1, 0, 0}}, {{0, 0, -4}, {-1, 0, 0}},
 {{0, 0, -4}, {-1, 0, 0}}, {{0, 0, -4}, {-1, 0, 0}},
 {{0, 0, -4}, {-1, 0, 0}}, {{0, 0, -4}, {-1, 0, 0}}, {{0, 0, -4}, {-1, 0,
0}}};

   In the following I get only 4 arrows:

In[3]:= ListPlotVectorField3D[vecfield, VectorHeads -> True]

Out[3]= -Graphics3D-

   In the following I get all the expected arrows (but without the
   heads).  I could stop here and ask why but ...

In[4]:= ListPlotVectorField3D[vecfield]

Out[4]= -Graphics3D-

   ... in the following, I do get all the expected arrows with heads,
   but why?  As I understand, Union is only supposed to sort and
   remove duplicates, so what difference does it make as far as
   ListPlotVectorField3D is concerned?  Plus I have experimented with
   "some amount" of duplication without problem.

  In[5]:= ListPlotVectorField3D[Union[vecfield],
VectorHeads -> True]

Out[5]= -Graphics3D-


Am I doing something wrong?
Thanks,
Alain





  • Prev by Date: Re: Wierd problems with Mathematica - inversion of a 12x12 matrix
  • Next by Date: FortranForm o/p question
  • Previous by thread: Re: Problem with ListPlotVectorField3D
  • Next by thread: Can you type a command and have Mathematica show the parameters?