MathGroup Archive 2009

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

Search the Archive

Re: Rotating a list of 3D point coordinates in one shot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg100053] Re: Rotating a list of 3D point coordinates in one shot
  • From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
  • Date: Fri, 22 May 2009 01:48:47 -0400 (EDT)
  • References: <gv2k0e$9gs$1@smc.vnet.net>

Hi Bill,

Rotate is for 2D rotations of graphics and other Mathematica
expressions.

RotationMatrix[180 Degree, {-1, -2, -1}] .# &  /@  list

will do the trick.

It's an example of functional programming in which a function which
takes one argument (# defines the slot for the argument and &
indicates that this is a 'pure' function). The function is mapped on
every member of the list  (/@ is a shortcut and infix notation for
Map). If you find it more readable you could write it as

Map[
  Function[{vec},
    RotationMatrix[180 Degree, {-1, -2, -1}] .vec
  ],
  list
]

which is fully equivalent.

Cheers -- Sjoerd

On May 21, 6:06 am, Bill <WDWNORW... at aol.com> wrote:
> Hi:
>
> I have a list of 3D coordinates:
>
> list={{1., 0., 0.}, {0.987688, 0.156434, 0.},
> {0.951057, 0.309017, 0.}, {0.891007, 0.45399, 0.}, {0.809017, 0.587785, 0=
.}, {0.707107, 0.707107, 0.},
> {0.587785,0.809017, 0.}, {0.45399, 0.891007, 0.}, {0.309017, 0.951057, 0.=
}, {0.156434, 0.987688, 0.},
> {0., 1., 0.}, {-0.156434, 0.987688, 0.},
> {-0.309017, 0.951057, 0.}, {-0.45399, 0.891007, 0.},
> {-0.587785, 0.809017, 0.}, {-0.707107, 0.707107, 0.},
> {-0.809017, 0.587785, 0.}, {-0.891007, 0.45399, 0.},
> {-0.951057, 0.309017, 0.}, {-0.987688, 0.156434, 0.},
> {-1., 0., 0.}}.
>
> I'd like to rotate all the coordinates in the list in one shot, using som=
ething like this:
>
> Rotate[list, 180 Degree, {-1, -2, -1}]}} (*Axis angle rotation.*)
>
> I haven't gotten this to work though. I can rotate a single point at a ti=
me using a similiar method, but
> that is very time consuming.
>
>  Question: Is there a way to rotate a list of numerous 3D coordinates s=
uch as in my example above, and if so, how do I code that using Mathematica=
 6.0.1?
>
> Thanks in advance,
>
> Bill



  • Prev by Date: Re: Legend for DateListPlot
  • Next by Date: Re: Solving integral equations numerically
  • Previous by thread: Re: Rotating a list of 3D point coordinates in one shot
  • Next by thread: Re: Rotating a list of 3D point coordinates in one shot