首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三维网格的布尔几何减法

三维网格的布尔几何减法
EN

Stack Overflow用户
提问于 2020-04-22 16:38:54
回答 2查看 1.9K关注 0票数 4

我正在从.obj中解析一个三维网格,它使用pywavefront给出了顶点、人脸和法线。我想通过减去另一个网格来计算剩余的面积。

跟进计算体积,我想知道如何在网格上执行操作,例如相交和减法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-12 15:46:08

如果我的理解是正确的,为了得到你剩余区域的体积,你应该首先计算出最终的网格。这称为布尔操作,通常在信封(表面网格,如.obj文件中)上实现。

有几个python模块建议在网格上实现布尔操作。

几乎没有其他模块,但据我所知,它们都依赖于外套下面的pymesh或搅拌器。

票数 2
EN

Stack Overflow用户

发布于 2022-09-30 14:20:17

在现有答案的基础上,还有一个选择是使用具有Python的开源库MeshLib。它可以以波前格式(.obj)读写网格,并在网格上执行布尔操作。

例如,从立方体中减去环面的代码如下:

代码语言:javascript
复制
import meshlib.mrmeshpy as mr
# create a mesh of cube with edge length =1:
cube = mr.makeCube(size = mr.Vector3f( 1, 1, 1 ))
# create a mesh of torus:
torus = mr.makeTorus( primaryRadius = 0.65, secondaryRadius = 0.1 )
# compute the difference between the cube and the torus:
diff = mr.boolean( cube, torus, mr.BooleanOperation.DifferenceAB )
# save the difference in file:
mr.saveMesh(diff.mesh, mr.Path("diff.obj"))

在某些网格查看器中打开后的差异网格:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61370374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档