MathGroup Archive 2008

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

Search the Archive

Re: The size of a 3D plot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg86721] Re: The size of a 3D plot
  • From: m.r at inbox.ru
  • Date: Wed, 19 Mar 2008 05:26:12 -0500 (EST)
  • References: <fripuj$r23$1@smc.vnet.net>

On Mar 16, 3:40 am, Mariano Su=E1rez-Alvarez
<mariano.suarezalva... at gmail.com> wrote:
> Hi all,
>
> is there a way to have a 3D graphic be sized so that it fits tightly
> in its bounding box? I seem to only be able to have it sized so that
> the *box* circumscribing it fits in the bounding box, as in
>
>   Graphics[{Sphere[]}]
>
> -- m

Here's some code that may do what you need, assuming you have a 3D
graphic with white background:

DynamicModule[
 {update, gr, gr2, k = 4,
  w = 360, h = 360, xmarg = 0, ymarg = 0, xd = 0, yd = 0,
  vp = {1.3, -2.4, 2.}, va = Automatic, vv = {0, 0, 1}},
 update[] :=
  (gr = Rasterize[
     Graphics3D[Cylinder[], Boxed -> False, ImageSize -> w,
      ViewAngle -> va, ViewPoint -> vp, ViewVertical -> vv],
     "Data", ImageResolution -> 72/k];
   {w, h} = k Dimensions[gr][[{2, 1}]];
   gr2 = Split[gr, Min[##] == 255 &];
   {ymarg, yd} =
    k {# + #2 - 2, (#2 - #)/2} & @@ Length /@ gr2[[{1, -1}]];
   gr2 = Split[Transpose@gr, Min[##] == 255 &];
   {xmarg, xd} =
    k {# + #2 - 2, (#2 - #)/2} & @@ Length /@ gr2[[{-1, 1}]]
   );
 update[];
 EventHandler[
  Graphics[Inset[
     Graphics3D[Cylinder[], Boxed -> False, ImageSize -> w,
      RotationAction -> "Clip",
      ViewAngle -> Dynamic[va],
      ViewPoint -> Dynamic[vp],
      ViewVertical -> Dynamic[vv]],
     {0, 0},
     Dynamic@Offset[{xd, yd}, ImageScaled at {.5, .5}],
     Dynamic@Offset@{w, h},
     ContentSelectable -> True],
    ImageSize -> Dynamic[{w - xmarg, h - ymarg},
      (w = #[[1]] + xmarg; update[]) &],
    ContentSelectable -> True] //
   Framed[#, FrameMargins -> 0] &,
  {"MouseUp" :> update[]}]
 ]

Maxim Rytin
m.r at inbox.ru


  • Prev by Date: Re: V.6.0.2 gripes...
  • Next by Date: Re: Compiled function slowdown
  • Previous by thread: The size of a 3D plot
  • Next by thread: Re: The size of a 3D plot