Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

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

Search the Archive

Re: Rotation of 3D objects

  • To: mathgroup at smc.vnet.net
  • Subject: [mg87171] Re: Rotation of 3D objects
  • From: Narasimham <mathma18 at hotmail.com>
  • Date: Thu, 3 Apr 2008 05:14:29 -0500 (EST)
  • References: <fqo8u2$t2s$1@smc.vnet.net> <fqqruv$kbq$1@smc.vnet.net>

On Mar 25, 11:19 am, Narasimham <mathm... at hotmail.com> wrote:
> On Mar 7, 12:47 pm, "David Park" <djmp... at comcast.net> wrote:
>
>
>
> > Here is some code for those who have the Presentations package.
>
> > For reflection in a mirror:
>
> > Needs["Presentations`Master`"]
>
> > Module[
> >  {(* object to reflect *)
> >   gr = ParametricDraw3D[{t, u + t, u t/5}, {t, 0, 2}, {u, -1, 1},
> >     Mesh -> 5,
> >     BoundaryStyle -> Black],
> >   (* Mirror location and normal *)
> >   p = {1, 1, 2},
> >   normal = {0, 0, 1},
> >   vector1, vector2},
> >  {vector1, vector2} = NullSpace[{normal}];
> >  Draw3DItems[
> >   {(* Original object *)
> >    {Opacity[.7, HTML[DarkSeaGreen]], gr},
> >    (* Reflected object *)
> >    {Opacity[.7, HTML[DodgerBlue]], gr} //
> >     ReflectionTransformOp[normal, p],
> >    (* Draw the mirror *)
> >    {Opacity[0.3, HTML[SkyBlue]],
> >     ParametricDraw3D[
> >      p + s vector1 + t vector2, {s, -3, 3}, {t, -3, 3},
> >      Mesh -> None]}},
> >   NeutralLighting[0, 0.6, .1],
> >   NiceRotation,
> >   ViewPoint -> {2, -2.4, .6},
> >   Boxed -> False,
> >   ImageSize -> 300]
> >  ]
>
> > Multiple copies of rotation about an axis:
>
> > Module[
> >  {(* object to reflect *)
> >   gr = ParametricDraw3D[{t, u + t, u t/5}, {t, 0, 2}, {u, -1, 1},
> >     Mesh -> 5,
> >     BoundaryStyle -> Black],
> >   (* axis, location and number of copies *)
> >   axis = {1, 1, 0},
> >   axislocation = {-1.5, -1.5, 2},
> >   ncopies = 4,
> >   rotationangle},
> >  rotationangle = 2 \[Pi]/ncopies;
> >  Draw3DItems[
> >   {(* Rotations *)
> >    {Opacity[.7, HTML[DarkSeaGreen]],
> >     Table[gr //
> >       RotationTransformOp[n rotationangle, axis, axislocation], {n=
, =
> 0,
> >        ncopies - 1}]},
> >    (* Draw the axis *)
> >    Red, Arrow3D[axislocation, axislocation + 5 axis, {.10}]},
> >   NeutralLighting[0, 0.6, .1],
> >   NiceRotation,
> >   ViewPoint -> {-1, -2.4, .6},
> >   Boxed -> False,
> >   ImageSize -> 300]
> >  ]
>
> > A Manipulate statement allowing the rotation about an axis by an adjusta=
bl=
> e
> > angle theta.
>
> > Manipulate[
> >  Module[
> >   {(* object to reflect *)
> >    gr = ParametricDraw3D[{t, u + t, u t/5}, {t, 0, 2}, {u, -1, 1},=

> >      Mesh -> 5,
> >      BoundaryStyle -> Black],
> >    (* axis direction and location *)
> >    axis = {1, 1, 0},
> >    axislocation = {-1.5, -1.5, 2}},
> >   Draw3DItems[
> >    {(* Original object *)
> >     {Opacity[.7, HTML[DarkSeaGreen]], gr},
> >     (* Rotated object *)
> >     {Opacity[.7, HTML[DodgerBlue]],
> >      gr // RotationTransformOp[\[Theta], axis, axislocation]},
> >     (* Draw the axis *)
> >     Red, Arrow3D[axislocation, axislocation + 5 axis, {.10}]},
> >    NeutralLighting[0, 0.6, .1],
> >    NiceRotation,
> >    PlotRange -> {{-1, 4}, {-1, 4}, {-1, 5}},
> >    ViewPoint -> {-1, -2.4, .6},
> >    Boxed -> False,
> >    ImageSize -> 300]
> >   ],
> >  Style["Rotation about axis by angle \[Theta]", 16],
> >  {\[Theta], 0, 2 \[Pi], Appearance -> "Labeled"}]
>
> > --
> > David Park
> > djmp... at comcast.nethttp://home.comcast.net/~djmpark/
>
> > "Narasimham" <mathm... at hotmail.com> wrote in message
>
> >news:fqo8u2$t2s$1 at smc.vnet.net...
>
> > > By what command is it possible to create (without writing a code
> > > separately ):
>
> > > 1) Reflections of 3D objects about a plane?
>
> > > 2) Multiple copies equally spaced  by rotation around an axis throug=
h
> > > two given points?
>
> > > E.g.,
> > > surf = ParametricPlot3D[{ t,u+t, u*t/5}, {t,0,2},{u,-1,1}];
> > > Rotate[surf,Axis->{ {-1,-1,-1},{1,1,1}} , Copies-> 4 ] ;     and,
>
> > > 3) A single rotation of given object through a given angle on an axis
> > > through two defined points?
>
> > > Thanks in advance
>
> > > Narasimham- Hide quoted text -
>
> > - Show quoted text -
>
> Actually in engineering drawing software e.g., CATIA, Autocad Pro E
> &c. such 3D operations are routinely  implemented, clicking on a
> standard GUI...the mathematical basis of which I was sure is well
> within Mathematica's range of computational capabilities. ( and it
> also appeared in 200 seconds. ).Mathematica gives the user an
> advantage to see those steps, or look into the black box.Of course,
> some minimum code lines have to be written.
>
> Regards,
> Narasimham

Thanks David Park for the earler reply. (Sorry my error, the above msg
is posted here but meant to follow Jen's msg). Is it possible to have
a same frame of reference to Show another 3D object together with say
3 rotated copies of an object out of the slider ?

Narasimham


  • Prev by Date: Re: setting elements of an array based on a condition
  • Next by Date: Re: Mathematica notebooks the best method
  • Previous by thread: Re: Possible values for the Method option for Graphics??
  • Next by thread: Re: Mathematica notebooks the best method