ReturnFaceCentroid
From scripting
global proc vector ReturnFaceCentroid(string $ObjName, int $FaceNum) { //Author Nick Pisca 0001d 2008 //string $ObjName = "pTorus1"; //string $FaceNum = 30; string $CurFacepts[] = `polyInfo -fv ($ObjName+".f["+$FaceNum+"]")`; string $CurtD[]; tokenizeList($CurFacepts[0], $CurtD); float $CurCornerPt[2] = `pointPosition ($ObjName+".vtx["+$CurtD[2]+"]")`; vector $CurCornerVec = <<$CurCornerPt[0],$CurCornerPt[1],$CurCornerPt[2]>>; float $CurCorner2Pt[2] = `pointPosition ($ObjName+".vtx["+$CurtD[3]+"]")`; vector $CurCorner2Vec = <<$CurCorner2Pt[0],$CurCorner2Pt[1],$CurCorner2Pt[2]>>; float $CurCorner3Pt[2] = `pointPosition ($ObjName+".vtx["+$CurtD[4]+"]")`; vector $CurCorner3Vec = <<$CurCorner3Pt[0],$CurCorner3Pt[1],$CurCorner3Pt[2]>>; float $CurCorner4Pt[2] = `pointPosition ($ObjName+".vtx["+$CurtD[5]+"]")`; vector $CurCorner4Vec = <<$CurCorner4Pt[0],$CurCorner4Pt[1],$CurCorner4Pt[2]>>; vector $Sum = $CurCornerVec + $CurCorner2Vec + $CurCorner3Vec + $CurCorner4Vec ; vector $AveVec = $Sum / 4; //spaceLocator -p ($AveVec.x) ($AveVec.y) ($AveVec.z) ; return ($AveVec); }
More information on vectors and polygon faces, read pages 14-16, 113-116 in YSYT.