Re: Trouble with Rotate
- To: mathgroup at smc.vnet.net
- Subject: [mg83358] Re: Trouble with Rotate
- From: "David Park" <djmpark at comcast.net>
- Date: Sun, 18 Nov 2007 04:48:38 -0500 (EST)
- References: <fhmh8n$adj$1@smc.vnet.net>
This is a case where a clash of graphics levels gives users trouble. All of the examples for Rotate use Graphics3D primitives and they don't show an example of using a curve or surface. This is much easier with the DrawGraphics package ($50) from my web site that automatically turns curves and surfaces into primitives and also has simplified commands for the various geometric transformations. First I would define the circle parametrization as follows: circ[r_, f_, q_] := {r*Sin[q]*Cos[f], r*Sin[q]*Sin[f], r*Cos[q]} Then using DrawGraphics this could be drawn as: Needs["DrawGraphics`DrawingMaster`"] Draw3DItems[ {ParametricDraw3D[circ[1, f, Pi/4], {f, 0, 2 Pi}]}, Axes -> True] To rotate the object, say about the x axis at the center point, you can use: With[ {circle0=ParametricDraw3D[circ[1,f,Pi/4],{f,0,2Pi}]}, Draw3DItems[ {circle0, Red, circle0//RotateOp[Pi/2,{0,1,0},{0,0,Cos[Pi/4]}]}, Axes->True] ] where RotateOp is just a more convenient postfix form of Rotate and I have shown the before and after circles. The new follow on Presentations package, which purchasers will be able to freely update to, has the command Circle3D and Disk3D in which you can specify the center, normal and radius of the circle or disk. With that we can write. Draw3DItems[ {Circle3D[{0, 0, 1}, {0, 0, 1}, 1], Red, Circle3D[{0, 0, 1}, {1, 0, 0}, 1]}, Axes -> True] -- David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ "Sergio Miguel Terrazas Porras" <sterraza at uacj.mx> wrote in message news:fhmh8n$adj$1 at smc.vnet.net... > Hi there! > > > > I am having trouble with Rotate. > > Here is the problem: > > I have a Graphics3D object called circ1 (obviously a circle in 3D space). > > > > r=1;q=p/4; > > circ1=ParametricPlot3D[{r*Sin[q]*Cos[f],r*Sin[q]*Sin[f],r*Cos[q]},{f,0,2 > p}] > > > > Now I want to rotate it by some angle about the vector eje={1,0,0} or > whatever vector. > > > > y=p/4;eje={1,0,0};p={0,0,0}; > > Graphics3D[Rotate[circ1,y,eje]] > > > > What I get is the message "Rotate is not a Graphics3D primitive or > Directive" (??) > > > > Any help will be appreciated. > > > > BTW, where dis the command ShadowPlot go? > > > > Thanks > > > > Sergio Terrazas > >