【发布时间】:2016-11-04 11:55:56
【问题描述】:
我有一个问题,我需要选择一个预先选择的人脸旁边的人脸。
这可能很容易完成,但问题是当我得到邻居的脸时,我需要知道它面对的方向。
所以现在我可以选择与边缘相连的面,但我无法从第一个选定的面中获取例如左侧或右侧的面。我尝试了多种方法,但找不到解决方案。
我试过了:
pickWalk -
cmds.pickWalk()- 问题在于它的行为无法预测,因为它是从相机的角度遍历网格。polyInfo -
cmds.polyInfo()- 这是一个非常有用的函数并且最接近答案。在这种方法中,我尝试从人脸中提取边缘,然后使用edgeToFace()查看哪些是该人脸的邻居。这很好用,但不能解决我的问题。详细地说,当polyInfo返回共享边的面时,它不会以我总能知道edgesList[0](例如)是指向左或右的边的方式返回它们。因此,如果我在不同的面孔上使用它,那么在每种情况下,生成的面孔可能会面向不同的方向。很难从顶点到边再到面等的许多转换。但同样的问题,我不知道哪条边是顶部或左侧。
-
conectedFaces()method 我在选定的面上调用谁,它返回与第一张脸相连的面,但仍然是同样的问题,我不知道哪个面朝哪个方向。
需要明确的是,我没有使用预先选择的面孔列表并检查它们,但我需要知道这些面孔而不知道或将它们的名字保存在某处。有人知道选择面孔的方法吗?
为了详细说明我的问题,我制作了一张图片以说明问题:
从示例中可以看出,如果选择了面,我需要选择任何一个尖面,但那必须是我想要选择的准确面。其他方法选择所有相邻面,但我需要可以说“选择正确”并从第一个选择的面中选择正确的方法。
【问题讨论】:
-
所以不像增长选择?是什么决定了他们的“方向”?他们的立场?
-
我用图像示例更新了问题,以便更好地理解问题。
-
您需要考虑的是您使用什么标准来确定左/右/上/下。除非您的网格预先确定有 4 条边并在公共轴上对齐,否则您需要提供“向上”的定义。此问题缺少提供有用答案的关键要求。
-
是的,每张脸都需要有 4 条边。我希望它至少可以这样工作。另一方面,物体的位置可以在场景中,所以我所说的“向上”是你从选定的面开始,向上是它的顶部。所以它需要面向对象。详细说明:如果我旋转对象,然后我得到的“向上”面朝下,就可以了。重点是得到一些穿过面孔的方式,但这种运动不是随机的。我使用的诸如“向上”,“向下”之类的热词是为了解释我需要从选定的面孔角度而不是在世界上获得的面孔坐标。
-
嗯,你可以从你要移动的那个人那里得到所有相邻的面,然后得到它们的中心位置。然后假设您正在“向上”移动,您可以选择具有最高 y 位置的那个。这样做也意味着它不一定需要是四边形,因为它总是与相邻的内容进行比较。这可能是一个解决方案吗?