MathGroup Archive 2003

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

Search the Archive

RE: Problem with Show, Can't Give More than 5 Arguments

  • To: mathgroup at smc.vnet.net
  • Subject: [mg42756] RE: [mg42748] Problem with Show, Can't Give More than 5 Arguments
  • From: "David Park" <djmp at earthlink.net>
  • Date: Fri, 25 Jul 2003 05:08:02 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Gil,

Just add PlotRange -> All at the end of the Show statement. Mathematica has
PlotRange -> Automatic as the default option, under which it tries to find
the "most interestering" part of the plot and eliminates outliers.

You could shorten your code considerably by using Map (/@). First we make a
list of the translations, using Union to eliminate duplicates. Then we
calculate a sphere, using AffineShape to adjust the size. Then we map
TranslateShape of the sphere onto the list of translations.

Needs["Graphics`Shapes`"];

translations = {{15, 35, 12}, {85, 3, 10}, {1, 3, 13}, {1, 12, 8}, {0, 0,
          0}, {17, 0, 2}, {10, 200, 200}, {200, 10, 26}, {11, 70, 25}, {3,
2,
          17}, {24, 0, 1}, {0, 0, 1}, {51, 0, 4}, {10, 0, 1}, {0, 0, 0}, {4,
          0, 0}, {1, 0, 0}, {1, 1, 5}} // Union;

sphere = AffineShape[Graphics3D[Sphere[]], {1, 1, 1}3];

Show[TranslateShape[sphere, #] & /@ translations,
    PlotRange -> All];

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



From: Gil [mailto:jiwwgvpfeudf at spammotel.com]
To: mathgroup at smc.vnet.net


I'm having a problem which I hope is very simple, but I'm new to
Mathematica.  I have 18 spheres, and I want to plot them in 3 dimensions.
This is what I tried:

Needs["Graphics`Shapes`"];
Show[
  TranslateShape[Graphics3D[Sphere[]],{15, 35, 12}],
  TranslateShape[Graphics3D[Sphere[]],{85, 3, 10}],
  TranslateShape[Graphics3D[Sphere[]],{1, 3, 13}],
  TranslateShape[Graphics3D[Sphere[]],{1, 12, 8}],
  TranslateShape[Graphics3D[Sphere[]],{0, 0, 0}],
  TranslateShape[Graphics3D[Sphere[]],{17, 0, 2}],
  TranslateShape[Graphics3D[Sphere[]],{10, 200, 200}],
  TranslateShape[Graphics3D[Sphere[]],{200, 10, 26}],
  TranslateShape[Graphics3D[Sphere[]],{11, 70, 25}],
  TranslateShape[Graphics3D[Sphere[]],{3, 2, 17}],
  TranslateShape[Graphics3D[Sphere[]],{24, 0, 1}],
  TranslateShape[Graphics3D[Sphere[]],{0, 0, 1}],
  TranslateShape[Graphics3D[Sphere[]],{51, 0, 4}],
  TranslateShape[Graphics3D[Sphere[]],{10, 0, 1}],
  TranslateShape[Graphics3D[Sphere[]],{0, 0, 0}],
  TranslateShape[Graphics3D[Sphere[]],{4, 0, 0}],
  TranslateShape[Graphics3D[Sphere[]],{1, 0, 0}],
  TranslateShape[Graphics3D[Sphere[]],{1, 1, 5}]
];

However, not all the spheres get plotted.  For example, (10, 200, 200) is
not plotted.  So I decided to try adding them one at a time.   I got this
far

Needs["Graphics`Shapes`"];
Show[
  TranslateShape[Graphics3D[Sphere[]],{15, 35, 12}],
  TranslateShape[Graphics3D[Sphere[]],{85, 3, 10}],
  TranslateShape[Graphics3D[Sphere[]],{1, 3, 13}],
  TranslateShape[Graphics3D[Sphere[]],{1, 12, 8}],
  TranslateShape[Graphics3D[Sphere[]],{0, 0, 0}]
];

And everything was plotted.  However, when I added one more point

Needs["Graphics`Shapes`"];
Show[
  TranslateShape[Graphics3D[Sphere[]],{15, 35, 12}],
  TranslateShape[Graphics3D[Sphere[]],{85, 3, 10}],
  TranslateShape[Graphics3D[Sphere[]],{1, 3, 13}],
  TranslateShape[Graphics3D[Sphere[]],{1, 12, 8}],
  TranslateShape[Graphics3D[Sphere[]],{0, 0, 0}],
  TranslateShape[Graphics3D[Sphere[]],{10, 200, 200}]
];

All of a sudden it looked like neither (10, 200, 200) nor (85, 3, 10) were
plotted any more.  I decided trying to take out one point

Needs["Graphics`Shapes`"];
Show[
  TranslateShape[Graphics3D[Sphere[]],{15, 35, 12}],
  TranslateShape[Graphics3D[Sphere[]],{85, 3, 10}],
  TranslateShape[Graphics3D[Sphere[]],{1, 12, 8}],
  TranslateShape[Graphics3D[Sphere[]],{0, 0, 0}],
  TranslateShape[Graphics3D[Sphere[]],{10, 200, 200}]
];

And everything was OK again.  So, as far as I can tell, if I have more than
5 arguments to Show, it doesn't show all of them.

To see if it might have anything to do with the Sphere function, I
substituted Cuboids, bu t I got exactly the same problem.  The same pattern
of objects was not plotted.

Show[
  Graphics3D[Cuboid[{15, 35, 12}]],
  Graphics3D[Cuboid[{85, 3, 10}]],
  Graphics3D[Cuboid[{1, 3, 13}]],
  Graphics3D[Cuboid[{1, 12, 8}]],
  Graphics3D[Cuboid[{0, 0, 0}]],
  Graphics3D[Cuboid[{17, 0, 2}]],
  Graphics3D[Cuboid[{10, 200, 200}]],
  Graphics3D[Cuboid[{200, 10, 26}]],
  Graphics3D[Cuboid[{11, 70, 25}]],
  Graphics3D[Cuboid[{3, 2, 17}]],
  Graphics3D[Cuboid[{24, 0, 1}]],
  Graphics3D[Cuboid[{0, 0, 1}]],
  Graphics3D[Cuboid[{51, 0, 4}]],
  Graphics3D[Cuboid[{10, 0, 1}]],
  Graphics3D[Cuboid[{0, 0, 0}]],
  Graphics3D[Cuboid[{4, 0, 0}]],
  Graphics3D[Cuboid[{1, 0, 0}]],
  Graphics3D[Cuboid[{1, 1, 5}]]
];

Any ideas why Mathematica isn't drawing everything it's being asked to draw?
Thanks to anyone who can help!



  • Prev by Date: Re: Problem with Show, Can't Give More than 5 Arguments
  • Next by Date: Re: Problem with Show, Can't Give More than 5 Arguments
  • Previous by thread: Re: Problem with Show, Can't Give More than 5 Arguments
  • Next by thread: Re: Problem with Show, Can't Give More than 5 Arguments