Re: ViewPoint selector (Stan Wagon's)
- To: mathgroup at smc.vnet.net
- Subject: [mg119276] Re: ViewPoint selector (Stan Wagon's)
- From: "Nasser M. Abbasi" <nma at 12000.org>
- Date: Sat, 28 May 2011 07:20:01 -0400 (EDT)
- References: <irntfc$sni$1@smc.vnet.net>
- Reply-to: nma at 12000.org
On 5/27/2011 3:13 AM, Christopher O. Young wrote: > Here's a handy tool for adjusting the viewpoint from the latest edition of > Stan Wagon's "Mathematica in Action". > > It's at Google Books at > http://books.google.com/books?id=EbVrWLNiub4C&pg=PA77&dq=Mathematica+%22Mesh > +option%22&source=gbs_selected_pages&cad=3#v=onepage&q&f=true > > I'm not sure how to make a function out of this, which will accept any > function of x and y, or better, any 3D plot. > > Also, it would be more helpful if it gave the x, y, and z coordinates that > corresponded to the angle, radius, and z coordinates used here. > > f[x_, y_] := (x^2 + 3 y^2) E^(1 - x^2 - y^2) (* Just an example; any 3D > plot should work *) > > > Manipulate[ > Plot3D[ > f[x, y], > {x, -2, 2}, {y, -2.5, 2.5}, > Ticks -> All, > AxesLabel -> {"x", "y", "z"}, > BoxRatios -> {4, 5, 3}, > Ticks -> {{0, 2}, Range[-2, 2], Range[0, 3]}, > SphericalRegion -> True, > ViewPoint -> Dynamic[{r Cos[\[Theta]], r Sin[\[Theta]], z}], > PlotLabel -> > Dynamic[StringForm["ViewPoint=``", > NumberForm[Chop[{r Cos[\[Theta]], r Sin[\[Theta]], z}], 3]] > ] > ], > {\[Theta], 0, 2 \[Pi]}, {{r, 1}, 0, 100}, {{z, 1}, -100, 100} > ] > > Thanks for posting it. I made small improvements to the above to remove the juggling of the image and the viewpoint displayed values that appear due to change of values size in the display as the demo is run. I do not like to see juggling in numerical data or images :) Here is the updated version, this should run more smooth on the eye. --------------------- Manipulate[ ( title=Style[Grid[{ {"ViewPoint = ",s[r Cos[\[Theta]]],s[r Sin[\[Theta]]],s[z]} },Frame->All,Spacings->{1,1}],14 ]; Plot3D[f[x,y],{x,-2,2},{y,-2.5,2.5}, Ticks->All, AxesLabel->{"x","y","z"}, BoxRatios->{4,5,3}, Ticks->{{0,2},Range[-2,2],Range[0,3]}, SphericalRegion->True, ViewPoint->Dynamic[{r Cos[\[Theta]],r Sin[\[Theta]],z}], PlotLabel->title, ImageSize->300,ImagePadding->{{10,10},{10,35}}] ), {\[Theta],0,2 \[Pi]},{{r,1},0,100},{{z,1},-100,100}, Initialization:> ( f[x_,y_]:=(x^2+3 y^2) E^(1-x^2-y^2); s[n_]:=NumberForm[Chop[n],{6,3}, NumberSigns->{"-","+"}, NumberPadding->{"0","0"}, SignPadding->True]; )] ----------------- --Nasser