Re: 3D ViewPoint Selector (V5.2) in higher Mathematica versions ?
- To: mathgroup at smc.vnet.net
- Subject: [mg130339] Re: 3D ViewPoint Selector (V5.2) in higher Mathematica versions ?
- From: "Alexander Elkins" <alexander_elkins at hotmail.com>
- Date: Wed, 3 Apr 2013 22:50:37 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <kjgo10$pui$1@smc.vnet.net>
This one has been answered before, look for "Viewpoint selector for Mac in 6.0" in the archives for this group and you will find an answer here: forums.wolfram.com/mathgroup/archive/2008/Mar/msg00766.html Here is my own version which uses slider manipulation to change ViewPoint for a graphic using any combination of x,y,z position and/or angles and radial distance: Manipulate[ Show[g, TicksStyle -> {Red, Green, Blue}, Ticks -> None, Axes -> True, AxesStyle -> Thread[List[{Red, Green, Blue}, Thick]], BaseStyle -> {FontWeight -> Bold, FontFamily -> "sans-serif", 28}, LabelStyle -> 14, AxesEdge -> {{-1, -1}, {-1, -1}, {-1, -1}}, AxesLabel -> {"X", "Y", "Z"}, SphericalRegion -> True, Method -> {"RotationControl" -> "Globe"}, ViewPoint -> Dynamic[vp, Function[{v, e}, \[Theta] = Mod[ArcTan[v[[3]], Norm[v[[1 ;; 2]]]] 180/\[Pi], 180]; \[Phi] = Mod[ArcTan[v[[1]], v[[2]]] 180/\[Pi], 360]; r = Norm[v]; {x, y, z} = e = v, HoldRest]], ViewVertical -> Dynamic[vv, Function[{v, e}, e = {0., 0., 1.}(*v*), HoldRest]]], {{x, 1.3, "x"}, -4, 4, Manipulator[ Dynamic[x, (\[Theta] = Mod[ArcTan[z, Norm[{#, y}]] 180/\[Pi], 180]; \[Phi] = Mod[ArcTan[#, y] 180/\[Pi], 360]; r = Norm[{#, y, z}]; vp = {#, y, z}; x = #) &], #2, Appearance -> "Labeled"] &}, {{y, -2.4, "y"}, -4, 4, Manipulator[ Dynamic[y, (\[Theta] = Mod[ArcTan[z, Norm[{x, #}]] 180/\[Pi], 180]; \[Phi] = Mod[ArcTan[x, #] 180/\[Pi], 360]; r = Norm[{x, #, z}]; vp = {x, #, z}; y = #) &], #2, Appearance -> "Labeled"] &}, {{z, 2.0, "z"}, -4, 4, Manipulator[ Dynamic[z, (\[Theta] = Mod[ArcTan[#, Norm[{x, y}]] 180/\[Pi], 180]; r = Norm[{x, y, #}]; vp = {x, y, #}; z = #) &], #2, Appearance -> "Labeled"] &}, {{\[Theta], Mod[ArcTan[2., Norm[{1.3, -2.4}]] 180/\[Pi], 180], "\[Theta]"}, 0, 180, Manipulator[ Dynamic[\[Theta], ({x, y, z} = vp = r {Sequence @@ ({Cos[\[Phi] \[Pi]/180], Sin[\[Phi] \[Pi]/180]} Sin[# \[Pi]/180]), Cos[# \[Pi]/180]}; \[Theta] = #) &], #2, Appearance -> "Labeled"] &}, {{\[Phi], Mod[ArcTan[1.3, -2.4] 180/\[Pi], 360], "\[Phi]"}, 0, 360, Manipulator[ Dynamic[\[Phi], ({x, y} = vp[[1 ;; 2]] = r {Cos[# \[Pi]/180], Sin[# \[Pi]/180]} Sin[\[Theta] \[Pi]/180]; \[Phi] = #) &], #2, Appearance -> "Labeled"] &}, {{r, Norm[{1.3, -2.4, 2.0}], "r"}, 0, 9, Manipulator[ Dynamic[r, ({x, y, z} = vp = # {Sequence @@ ({Cos[\[Phi] \[Pi]/180], Sin[\[Phi] \[Pi]/180]} Sin[\[Theta] \[Pi]/180]), Cos[\[Theta] \[Pi]/180]}; r = #) &], #2, Appearance -> "Labeled"] &}, {{vp, {1.3, -2.4, 2.0}, "ViewPoint"}, InputField[ Dynamic[vp, (\[Theta] = Mod[ArcTan[#[[3]], Norm[#[[1 ;; 2]]]] 180/\[Pi], 180]; \[Phi] = Mod[ArcTan[#[[1]], #[[2]]] 180/\[Pi], 360]; r = Norm[#]; {x, y, z} = vp = #) &]] &}, {{vv, {0., 0., 1.}, "ViewVertical"}, None}, Initialization :> (g = Plot3D[Cos[x + Cos[y]], {x, -Pi, Pi}, {y, -Pi, Pi}])] Hope this helps... "Dr. Robert Kragler" <kragler at hs-weingarten.de> wrote in message news:kjgo10$pui$1 at smc.vnet.net... > > Hi, > in Mathematica V 5.2 there was a useful graphics tool being envoked by Menu > > Input > *3D ViewPoint Selector*. With this interactive palette/notebook one > could easily determine the Cartesian or Spherical coordinates (i.e. {theta, phi, > r} resp. {x,y,} ) of a wireframe cube and then paste these values for the > optimized view of the rotated cube into another Mathematica graphics. > > Unfortunately this tool became obsolete from version 6.0. on (which is mainly > due to the fact that 3D graphics can be manipulated interactively in higher > Mathematica versions.) Nevertheless, in order to determine the optimum viewpoint > coordinates I sometimes miss this tool. And I just searched in the installation > tree structure of Mathematica V5.2 (and higher versions too) for a notebook > resp. palette with the name 3DViewPointSelector (or similar) but could not find > this tool even in V5.2. Of course, one could write a litte application with > Manipulate for rotating a wireframe cube and read out the viewpoint coordinates. > But if this tool already exists why do additional efforts... > > Does anyone know where to look for this nice graphics tool which (if available) > would certainly be applicable in other Mathematica versions too. Help would be > appreciated. > > Thanks R. Kragler > > -- > Prof. Dr. Robert Kragler > Email : kragler at hs-weingarten.de > URL : http://portal.hs-weingarten.de/web/kragler >