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