dimanche 5 août 2012

maya python vector

    Salut salut.
Je cherchais comment avoir la distance entre deux vertex quand je me suis rendu compte que dans python on travail pas avec des vecteurs, on fait tout avec les listes et les tuples. Alors que en Mel on a bien des variables de types vector:
vector $vect1 = <<0,1,0>>;
vector $vect2 = <<1,3,0>>;
vector $vect3 = $vect1 + $vect2;
// Result: <<1, 4, 0>>  // 


Alors comment faire la même chose en python dans maya ? En utilisant l'API et la class MVector, au passage voici le script qui permet d'avoir le vecteur distance entre deux vertex:
import maya.cmds as m
import maya.OpenMaya as om

vX = m.pointPosition("pCube1.vtx[2]")
vX = m.pointPosition("pCube1.vtx[3]")

vXx = om.MVector(vX[0], vX[1], vX[2])
vYy = om.MVector(vY[0], vY[1], vY[2])

vZz =  vYy - vXx

print vZz.x
print vZz.y
print vZz.z


English version:

I was looking how to get the distance between two vertex and i realised that python doesn't work with vertors, it work with list and tuple. While in Mel there is well vector variables:
vector $vect1 = <<0,1,0>>;
vector $vect2 = <<1,3,0>>;
vector $vect3 = $vect1 + $vect2;
// Result: <<1, 4, 0>>  // 


So how do the same thing in python? By using the API and the class MVector. Here an exemple and the tips for find distance between two vector.
import maya.cmds as m
import maya.OpenMaya as om

vX = m.pointPosition("pCube1.vtx[2]")
vX = m.pointPosition("pCube1.vtx[3]")

vXx = om.MVector(vX[0], vX[1], vX[2])
vYy = om.MVector(vY[0], vY[1], vY[2])

vZz =  vYy - vXx

print vZz.x
print vZz.y
print vZz.z

Aucun commentaire:

Enregistrer un commentaire