PhilC wrote: > ''' > ################################################ > Task:- > to apply a translation array to an array > of 3D vertex coordinates to produce the > resulting location of each vertices. > > Translation array and vertex coordinates taken from > a Truespace COB file. > > The text in the COB file looks like this:- > > Transform > -2.11786 -0.817596 0.946387 0.864939 > 0.405189 1.25484 2.11894 0.434915 > -1.16679 1.9198 -0.981965 1.13894 > 0 0 0 1 > World Vertices 8 > -0.200000 -0.029486 -0.236313 > 0.200000 0.029486 -0.163687 > -0.200000 0.370514 -0.282911 > -0.200000 0.370514 0.117089 > -0.200000 -0.029486 0.163687 > 0.200000 0.029486 0.236313 > 0.200000 0.429486 -0.210286 > 0.200000 0.429486 0.189714 > > ############################################### > ''' > # script start > > import Numeric > > transArray = Numeric.array(( > (-2.11786, -0.817596, 0.946387, 0.864939), > (0.405189, 1.25484, 2.11894, 0.434915), > (-1.16679, 1.9198, -0.981965, 1.1389), > (0, 0, 0, 1) > )) > > # a "1" added to the end of each set of vertix coordinates > vertArray = Numeric.array(( > (-0.200000, -0.029486, -0.236313, 1), > (0.200000, 0.029486, -0.163687, 1), > (-0.200000, 0.370514, -0.282911, 1), > (-0.200000, 0.370514, 0.117089, 1), > (-0.200000, -0.029486, 0.163687, 1), > (0.200000, 0.029486, 0.236313, 1), > (0.200000, 0.429486, -0.210286, 1), > (0.200000, 0.429486, 0.189714, 1) > )) > > print transArray > print "" > print vertArray > print "" > > transArray = Numeric.reshape(transArray,(4,4)) > vertArray = Numeric.reshape(vertArray,(4,8)) > > print Numeric.matrixmultiply(transArray,vertArray) > > # script end > ''' > ################################################################## > Result:- > > [[ 0.5708016 0.10309048 0.70481144 -1.12413 0.1022124 > 0.03400637 0.63866924 -1.12413 ] > [-0.6688108 0.57729922 -0.19537307 4.213884 0.3408408 > 0.72615216 0.66384632 4.213884 ] > [ 0.273571 1.26381257 -0.66763452 0.909945 -0.585931 > 1.13709619 0.39979 0.909945 ] > [ 0.2 0.429486 -0.210286 1. 0.2 > 0.429486 0.189714 1. ]] > > Am I going in the right direction?
No. The reshape didn't do what you want it to. The elements will have the same order; it won't transpose the array. To do that, use the transpose() function. > What do I do with the result? :) When you have it correct, the last row will be all 1s. Ignore it. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list