使用python/API在maya中找到特定半径内的顶点

2024-04-19 09:42:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到网格上最近的顶点,但在半径范围内。这是为了避免在所有顶点之间循环,因为这很耗时。例如,我有2件不同顶点数的衬衫,我试图找到最接近顶点的顶点,在mesh2的右袖子上,在mesh1的右袖子上。我不想循环穿过袖子之外的顶点,因为逻辑上没有顶点足够接近。我不知道还有一个问题,我不知道,还有一个问题,那就是,我不知道有没有其他的顶点。在

我有代码循环通过顶点,并得到最近的点,但如果网格有一个很高的顶点数,它需要很长的时间,即使它使用API。在

maya中是否有一个函数可以根据半径限制顶点?或者关于如何编写一个可以做到这一点的函数的提示?在


Tags: 函数代码api网格时间半径逻辑顶点
1条回答
网友
1楼 · 发布于 2024-04-19 09:42:53

您可以使用节点nearestPointOnMesh。在maya API中,可以查找可以进行光线投射的MFnMesh::closestIntersection类(Querying of a point is within a mesh maya python api

vtx = 'shirt1.vtx[0]'
pos = cmds.pointPosition(vtx)
m = 'shirts2'
objShape = cmds.listRelatives(m, ni=True, type='mesh')[0]
node = cmds.createNode('nearestPointOnMesh')
cmds.connectAttr(objShape + ".worldMesh", node + ".inMesh")
cmds.setAttr(node + ".inPosition", type = 'double3', *pos)
target_pos = cmds.getAttr(node + '.position')[0]
face = cmds.getAttr(node + ".nearestFaceIndex")

相关问题 更多 >