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: [mg86314] Re: Rotation of 3D objects
  • From: "Fred Klingener" <gigabitbucket at gmail.com>
  • Date: Sat, 8 Mar 2008 05:41:36 -0500 (EST)
  • References: <fqo8u2$t2s$1@smc.vnet.net>
  • Reply-to: "Fred Klingener" <gigabitbucket at gmail.com>

"Narasimham" <mathma18 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?

How about:

surf = ParametricPlot3D[{t, u + t, u*t/5}, {t, 0, 2}, {u, -1, 1}];
Graphics3D[{#, # /.
GraphicsComplex[nodelist_, rest__] ->
GraphicsComplex[ReflectionTransform[{1, 0, 0}, {0, 0, 0}][nodelist],
rest]} &@First[surf]]

> 2) Multiple copies equally spaced  by rotation around an axis through
> two given points?

Same approach (sort of) works:

Manipulate[
Graphics3D[
Table[First[surf] /.
GraphicsComplex[nodelist_, rest__] ->
GraphicsComplex[
RotationTransform[j 2 Pi/n, {0, 0, 1}, {-1, -1, 0}][nodelist],
rest], {j, 0, n - 1}]]
, {n, {1, 2, 3, 4, 5, 6}}]
To understand the method, note the returns from the following:

Head[surf]
surf
Head[First[surf]]
Graphics3D[First[surf]]
Shallow[First[surf]]

If you want to inspect the many screenloads of GraphicsComplex in its full 
glory, look at

First[surf]//InputForm

First[surf] is a GraphicsComplex (which can be rendered with 
Graphics3D[First[surf]]). It has a structure that leads with a node List 
that can be extracted with a pattern, transformed with the usual tools, then 
reassembled into a new GraphicsComplex.

You can inspect the node list alone with

First[surf] /. GraphicsComplex[nodelist_, rest__] -> nodelist

> 3) A single rotation of given object through a given angle on an axis
> through two defined points?

If I understand the question, this is a matter of using your two points to 
generate the parameters of your choice for the RotationTransform.

Hth,

Fred Klingener





  • Prev by Date: Re: Finding a continuous solution of a cubic
  • Next by Date: BeginPackage and $ContextPath Blues (6.0.2)
  • Previous by thread: Re: Rotation of 3D objects
  • Next by thread: Re: Rotation of 3D objects