MathGroup Archive 2007

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

Search the Archive

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
>
> 



  • Prev by Date: Re: Copy and Pasting Tables into Spreadsheet
  • Next by Date: Re: Floor doesn't compute in some cases
  • Previous by thread: Re: Trouble with Rotate
  • Next by thread: Creating a Slideshow with Mathematica6!