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