Mattias Brändström wrote: > 1. Create 3d vectors. > 2. Normalize those vectors. > 3. Create a 3x3 rotation matrix from a unit 3-d vector and an angle in > radians. > 4. Perform matrix multiplication. > > Meybe someone knows a way to use numpy for 2 and 3?
Here's some code I wrote recently to do normalisation of vectors using Numeric: from Numeric import add, sqrt def dots(u, v): """Return array of dot products of arrays of vectors.""" return add.reduce(u * v, -1) def units(v): """Array of unit vectors from array of vectors.""" ds = 1.0 / sqrt(dots(v, v)) return ds * v These work best if you give them multiple vectors to work on at once, otherwise you don't get much advantage from using Numeric. I don't have anything to hand for rotation about a vector, but if you can find a formula, you should be able to use similar techniques to "vectorize" it using Numeric. -- Greg -- http://mail.python.org/mailman/listinfo/python-list