Re: Rotating a list of 3D point coordinates in one shot
- To: mathgroup at smc.vnet.net
- Subject: [mg100023] Re: Rotating a list of 3D point coordinates in one shot
- From: "Marc B. Reynolds" <marc.reynolds at orange.fr>
- Date: Fri, 22 May 2009 01:43:11 -0400 (EDT)
Something like this should be reasonable: create a 3x3 matrix once and apply (note verify the matrix, I only quickly spot checked it.) rotate3D[p_, t_, {ax_, ay_, az_}] := Module[ {s,w,x,y,z,m}, s = Sin[t * .5]; (* evaluate terms *) w = Cos[t * .5]; x = st ax; y = st ay; z = st az; m = {{1-2(y y + z z), 2(x y - w z), 2(w y + x z)}, { 2(w z + x y), 1-2(x x + z z), 2(y z - w x)}, { 2(x z - w y), 2(w x + y z), 1-2(x x + y y)}}; If[MatrixQ[p], Map[Chop[Dot[m, #]] &, p], Chop[m.p]] ]