我想在Maya中找到来自多个对象的顶点选择的中心(按中心,我的意思是默认枢轴位置)。我认为这是centroid,但似乎这不会返回正确的坐标。
我选择了四个顶点,每个球体的两个极点。红色是"中心"这个顶点,Maya放置默认枢轴,蓝色是我计算时的质心。
我的计算错误或者顶点的中心不是质心,无论如何这些显然不是相同的坐标。这是我的代码:
loc = cmds.spaceLocator ()[0]
vtxList = cmds.ls (sl = True, fl = True)
vtxPosSum = [0, 0, 0]
for vtx in vtxList:
vtxPos = cmds.xform (vtx, q = True, ws = True, t = True)
vtxPosSum[0] += vtxPos[0]
vtxPosSum[1] += vtxPos[1]
vtxPosSum[2] += vtxPos[2]
barycentre = [vtxPosSum[0] / len(vtxList),
vtxPosSum[1] / len(vtxList),
vtxPosSum[2] / len(vtxList)]
cmds.xform (loc, ws = True, t = barycentre)
所以我的问题是,如何从多个多边形中选择顶点时如何找到默认Maya轴的位置?
由于
答案 0 :(得分:1)
答案 1 :(得分:1)
我认为玛雅在选择多个组件时会使用边界框的中心作为枢轴中心...我可能错了,但试一试,看看它是否是正确的位置:
import maya.cmds as mc
sel = mc.ls(sl=True)
bb = mc.exactWorldBoundingBox(sel)
pos = ((bb[0] + bb[3]) / 2, (bb[1] + bb[4]) / 2, (bb[2] + bb[5]) / 2)
pos 将是移动你的定位器(或者你正在测试的任何东西)的世界空间xyz位置