def getRotationMatrixFromAxis(axis): # define world rotation matrix axisZ = Vector(axis) # because the default primitive cone is oriented along -Z, unlike the one imported from Blender UI... axisX = Orthogonal(axisZ) axisY = axisZ.cross(axisX) axisX.normalize() axisY.normalize() axisZ.normalize() axisX.resize_4d(); axisX[3] = 0 axisY.resize_4d(); axisY[3] = 0 axisZ.resize_4d(); axisZ[3] = 0 axisW = Vector((0,0,0,1)) rotmat = Matrix((axisX,axisY,axisZ,axisW)) rotmat.transpose() return(rotmat)