MathGroup Archive 2007

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

Search the Archive

Re: Rotable Graphics and ViewPoint

  • To: mathgroup at smc.vnet.net
  • Subject: [mg78544] Re: Rotable Graphics and ViewPoint
  • From: Januk <ggroup at sarj.ca>
  • Date: Wed, 4 Jul 2007 05:28:04 -0400 (EDT)
  • References: <f67mco$2vu$1@smc.vnet.net><f6d5jp$i8p$1@smc.vnet.net>

Hi Albert,

Thanks for the suggestions.  I had indeed previously tried the method
you espouse.  It does solve the issue of being able to press a given
button in succession.  However, I find that the rotating and
interaction with the graphic is less responsive than if I make the
entire Show command dynamic.

Yes I am aware of the Front, Back, etc built-in keywords.  They are
useful if you want a perspective view.  By setting the viewpoint to
infinity, you get a projection view (i.e no perspective artifacts).
It is simply a matter of personal preference for a given application.

Thanks again,
Januk

On Jul 3, 6:57 am, Albert <a... at arcor.net> wrote:
> Hi,
>
>
>
>
>
> > CADView[pl_, opts___?OptionQ] := DynamicModule[{vpv, vv, vp},
> >     Panel[
> >       {
> >           vpv = { {1.3, -2.4, 2}, Automatic };
> >           Row[{
> >               Button["Automatic", vpv = { {1.3, -2.4, 2},
> > Automatic }],
> >               Button["Top", vpv = {{0, 0,  }, {0, 1, 0} }],
> >               Button["Bottom", vpv = { {0, 0, - }, {0, 1, 0} }],
> >               Button["Left", vpv = { {- , 0, 0}, {0, 0, 1} }],
> >               Button["Right", vpv = { { , 0, 0}, {0, 0, 1} }],
> >               Button["Front", vpv = { {0, - , 0}, {0, 0, 1} }],
> >               Button["Back", vpv = { {0,  , 0}, {0, 0, 1} }]
> >               }],
>
> >           Dynamic[{vp, vv} = vpv;
> >             Show[pl, ViewPoint -> vp, ViewVertical ->
> >               vv, opts, ImageSize -> 400]]
> >           } // Column
> >       ]]
>
> > One bug with this is that you can't press one button, rotate the
> > graphic and then press that same button.  I don't really understand
> > why that doesn't work.  The work-around is easy enough; simply press a
> > different button before pressing the first one a second time.
>
> I think that happens because vpv does not dynamically update when either
> vp or vv change, you either need to make it aware of these changes or
> directly use vp and vv in the assignments. Also it would make the thing
> more reactive if you restrict the Dynamics to the Option-Values (which
> will not recreate the whole graphics). Have you noticed that you can use
> Front, Back etc. directly as Option-Values for ViewPoint? Here is a
> slightly modified version of your code:
>
> CADView[pl_, opts___?OptionQ] := DynamicModule[{vv, vp},
>    vp = {1.3, -2.4, 2};
>    vv = Automatic;
>    Panel[Column[{
>       Row[{
>         Button["Automatic", {vp, vv} = {{1.3, -2.4, 2}, Automatic}],
>         Button["Top", {vp, vv} = {Top, {0, 1, 0}}],
>         Button["Bottom", {vp, vv} = {Bottom, {0, 1, 0}}],
>         Button["Left", {vp, vv} = {Left, {0, 0, 1}}],
>         Button["Right", {vp, vv} = {Right, {0, 0, 1}}],
>         Button["Front", {vp, vv} = {Front, {0, 0, 1}}],
>         Button["Back", {vp, vv} = {Back, {0, 0, 1}}]
>         }],
>       Grid[{
>         {ViewPoint, InputField[Dynamic[vp]]},
>         {ViewVertical, InputField[Dynamic[vv]]}
>         }],
>       Show[pl, ViewPoint -> Dynamic[vp], ViewVertical -> Dynamic[vv],
>        opts, ImageSize -> 600]
>       }]]
>    ]
>
> Anyway, the following would probably be just be enough functionality for
> what Helen needs:
>
> v=Front;
> Column[{
>    InputField[Dynamic[v]],
>    Plot3D[Sin[x y], {x, -5, 5}, {y, -5, 5}, ViewPoint -> Dynamic[v],
>     ImageSize -> 500]
>    }]
>
> I think that Helen needs something without extra code and that is
> simpler than what is suggested. Although I agree that it would be nice
> if Wolfram would implement some standard things for graphics (reading
> and copying coordinates from a 2d-Graphics has come up already) in such
> a way that you wouldn't need extra code to do them. On the other hand I
> can imagine that there is disagreement about what would be important
> enough to be a build-in and what not. And to have everything available
> doesn't make the program easier to use, too...
>
> after all I guess we have to live with what WRI decides to do...
>
> albert- Hide quoted text -
>
> - Show quoted text -




  • Prev by Date: Re: Re: Second argument of BeginPackage, revisited
  • Next by Date: Re: T Copula Calibration
  • Previous by thread: Re: Rotable Graphics and ViewPoint
  • Next by thread: Re: Rotable Graphics and ViewPoint