top of page

Maya | Python | Face Normal

  • Writer: Max Liu
    Max Liu
  • May 14, 2020
  • 1 min read

Updated: Dec 24, 2024



import maya.cmds as cmds
import pymel.core as pm

geo = pm.selected()
pm.makeIdentity(geo, apply=True, t=1,r=1,s=1,n=0,pn=1)
allVertexes = pm.ls('{}.vtx[*]'.format(geo[0]),fl=True)
allVertexesPos = []
for eachPos in allVertexes:
    allVertexesPos.append(eachPos.getPosition())
#print allVertexesPos[0]
vertex_0 = allVertexesPos[0]
vertex_1 = allVertexesPos[1]
vertex_2 = allVertexesPos[2]
#print vertex_0, vertex_1, vertex_2

vector_0 = [vertex_0[0]-vertex_1[0],
          vertex_0[1]-vertex_1[1],
          vertex_0[2]-vertex_1[2]]

vector_1 = [vertex_0[0]-vertex_2[0],
          vertex_0[1]-vertex_2[1],
          vertex_0[2]-vertex_2[2]]

def cross(a, b):
    c = [a[1]*b[2] - a[2] * b[1],
         a[2]*b[0] - a[0] * b[2],
         a[0]*b[1] - a[1] * b[0]]
    return c

print 'Face normal:'
print cross(vector_0, vector_1)




Yorumlar


bottom of page