- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我刚刚开始在 Python 中使用 OpenMesh。我首先尝试制作一个由单个四边形组成的 PolyMesh。这就是我所做的:
from openmesh import *
mesh = PolyMesh();
vh0 = mesh.add_vertex(PolyMesh.Point(0,0,0));
vh1 = mesh.add_vertex(PolyMesh.Point(1,0,0));
vh2 = mesh.add_vertex(PolyMesh.Point(1,1,0));
vh3 = mesh.add_vertex(PolyMesh.Point(0,1,0));
vh_list = [vh0, vh1, vh2, vh3];
fh0 = mesh.add_face(vh_list);
这将创建一个四边形网格。然后,想要对四边形进行一次细化,我想尝试一下:
vh4 = mesh.add_vertex(PolyMesh.Point(0.5,0,0));
vh5 = mesh.add_vertex(PolyMesh.Point(0.5,1,0));
vh_list = [vh4, vh1, vh2, vh5];
fh1 = mesh.add_face(vh_list);
上面给出了一个复杂边缘
错误。我从 SO 的其他问题中了解到,这是因为第二种情况下的 vh_list 没有定义与第一个面一致的方向。然而,我不想添加新面孔。也就是说,我认为该操作只是在 x = 0.5 处分割 fh0,而不是在边缘索引 1 处创建附加到 fh0 的新面。有人能说说如何做到这一点吗?我在文档中找不到“split_face”函数。
此外,如何在 Python 中访问特定边/网格组件的句柄? (我只找到了 C++ 的答案。)例如,我知道我可以使用以下方法迭代边缘:
for eh in mesh.edges():
但是我如何直接获取边缘 2 的句柄并按如下方式使用它?
mesh.split_edge(eh,vh5)
谢谢!
编辑 1
我在 OpenMesh 文档中找到了函数 split
,但它需要一个顶点句柄作为输入,我可以在该顶点句柄上分割面。分割后,它将网格转换为三角形网格。我不想要这个。我想在 x = 0.5 处将四边形分成两个四边形。谢谢。
编辑2
我尝试了另一种方法:首先删除 fh0,然后根据我想要的细化添加两个新面孔 fh0 和 fh1。我尝试做
mesh.delete_face(fh0)
Python 出现段错误并退出。
最佳答案
如果您想将面 fh0
拆分为两个面,您应该先删除 fh0
,然后创建两个新面。这应该可以完成工作:
mesh.delete_face(fh0, deleted_isolated_vertices = False)
mesh.garbage_collection()
fh0 = mesh.add_face(vh0,vh4,vh5,vh3)
fh1 = mesh.add_face(vh4,vh1,vh2,vh5)
要验证您是否获得了所需的结果,请请求 print(mesh.face_vertex_indices())
,您应该获得两个列表,其中列出了每个面的顶点索引。
此外,要访问已知的边缘句柄,您可以使用
eh = mesh.edge_handle(edge_index)
其中 edge_index
是 int
,您感兴趣的边缘的索引。
希望这有帮助,
查尔斯。
关于python - Openmesh:如何修改网格面? (以及如何随机访问组件句柄?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47007392/
我设置了 Helm 柄和 Helm 柄。我有tiller-deploy。昨天,我可以定期运行了。但今天我收到此错误消息 Error: could not find a ready tiller pod
我以前已将分er安装到特定的 namespace 中。 我设置了一个环境变量来设置'tiller'命名空间-但我不记得该环境变量的名称-而且似乎无法通过网络搜索找到它。 这是什么 key ? 最佳答案
当我在 View 模型中使用如下界面时 class MainViewModel @ViewModelInject constructor( private val trafficImagesR
我正在尝试找到如何在某个 fragment 相关场景中定义 Hilt 的解决方案。我有以下设置: Activity 父 fragment 1 子 fragment 1 子 fragment 2 ...
Hilt 指出如果没有@Provides 注解就不能提供这个接口(interface): interface PlannedListRepository { fun getAllLists()
我的问题非常简单明了:两个注释/示例之间有什么区别: 例子一 @Singleton class MySingletonClass() {} @Module @InstallIn(FragmentCom
我是一名优秀的程序员,十分优秀!