答案 0 :(得分:0)
如果我能得到底点的Y坐标,我可以得到底部的点,但我无法弄清楚如何得到它。
我弄明白:底点的Y坐标=模型最低顶点的Y坐标。所以这样做:循环遍历所有顶点以获得最低的顶点。
假设目标对象是:“pCube1”。这是获得最低Y的代码。
int $vtxIdx;
int $vCount[] = `polyEvaluate -vertex pCube1`; //Get vertex count
float $lowestY = 2147483647.0;
float $crtY = 0.0;
for ($vtxIdx = 0; $vtxIdx < $vCount[0]; $vtxIdx++)//Loop through vetex
{
float $pos[] = `xform -q -ws -t ("pCube1.vtx["+$vtxIdx+"]")`;//Get vertex position
$crtY = $pos[1];
if($crtY < $lowestY)
{
$lowestY = $crtY;//Get the lowest Y
}
}
print ($lowestY);
所以最低点=(pCube1.X,最低Y,pCube1.Z)。
答案 1 :(得分:0)
循环遍历所有顶点可能很慢,尤其是对于密集网格。可以做的是使用对象的边界框:
float $bb[] = `getAttr pCube1.boundingBoxMin`;
print($bb[1]); // Lowest position in Y
这样做的另一个好处是您不依赖于顶点,因此它不必是多边形网格。