Opengl 剪切三维实体并计算新体积

Opengl 剪切三维实体并计算新体积,opengl,3d,volume,Opengl,3d,Volume,我想通过几个平面切割三维实体,显示这些平面并计算每个切割平面之间的体积。例如,在随后的图片中,我想确定两个绿色平面之间的体积。有人知道怎么做吗?我正在使用openGL,但也许另一种选择更有效 [编辑] 我最终实现了在浏览器上显示一个stl文件,计算其体积,然后我可以将其划分为两个stl文件,代表两种不同的切割。我再次使用相同的算法来重新计算切割的体积 现在的困难是将stl文件合并成一个文件,并在剪切之间创建一个小间隙。所有的岩屑都有相同的方向,所以应该更容易 如果你有什么想法,请告诉我,谢谢

我想通过几个平面切割三维实体,显示这些平面并计算每个切割平面之间的体积。例如,在随后的图片中,我想确定两个绿色平面之间的体积。有人知道怎么做吗?我正在使用openGL,但也许另一种选择更有效

[编辑]

我最终实现了在浏览器上显示一个stl文件,计算其体积,然后我可以将其划分为两个stl文件,代表两种不同的切割。我再次使用相同的算法来重新计算切割的体积

现在的困难是将stl文件合并成一个文件,并在剪切之间创建一个小间隙。所有的岩屑都有相同的方向,所以应该更容易

如果你有什么想法,请告诉我,谢谢

不幸的是,OpenGL没有做这些事情

OpenGL是一个图形渲染库,因此它几乎不做其他事情

某些类型的CAD建模软件可能确实存在,可以实现您指定的功能,但您必须进行一些研究。在web上搜索“工程cad程序”

编辑:

由于您正在编写函数和数学来完成您提到的这些任务,并且只需要图形表示,因此OpenGL是一个理想的解决方案。三维数据的图形化表示正是OpenGL擅长的事情之一

考虑到你提供的额外信息,这肯定是一个重要的项目

老实说,最简单的部分可能是渲染

您需要能够获取STL格式的数据,并将其转换为OpenGL可用于渲染的格式—通常是三角形和顶点

您还需要编写和测试数学函数,以从网格导出体积。就在这个网站上

随着你的进步,你会发现将任务分解成更小的任务,然后单独处理更容易。这是软件开发人员的核心技能,您应该尽可能多地练习


虽然像你这样的任务一开始看起来相当困难,因为你把问题分解,它们变得更容易处理。

finlaybob给了你相当广泛的答案,但它缺少最重要的部分:)

寻找。这是用于添加、减去和切割三角形网格的算法的通用术语。您将找到许多文章,但也可以找到为这项任务准备的库。如果你喜欢自己写或者使用现有的库,这是你的主观决定,我不会在这里帮你

当您为CSG选择解决方案时,剩下的应该简单得多:

  • 选择目标网格格式并从文件中读取网格(我相信您已经这样做了)
  • 使用CSG使用平面剪切网格,或者将平面拉伸为立方体,并从网格中减去它们(取决于CSG的确切功能)
  • 使用finlaybob的建议计算其余部分的体积

    • 如果您知道模型的一些数学表示,或者子模型的组合,那么,剖切是一个数学问题。
      对于任何通用模型,可能使用四面体或某种3D网格构建3D是一个很好的解决方案,因为平面交点的数学计算非常简单。

      嗨,欢迎使用!请提供一个服务提供商,以便我们能更好地帮助您!嗨,谢谢你的回答,实际上我还没有开始,因为我想研究这个功能的可行性。我只需要一些可能的解决方案。如果我错了,请随时告诉我。谢谢,你的回答很清楚,很有帮助!实际上,我的最终目标是从stl文件创建一个3D网格,切割这个网格并计算新的体积,然后我将使用openGL在3D模型上显示它。(如图所示)。这是一个长期的项目,但我正在努力一步一步地进步。暗示幻影的下降。。。如果我提到了不正确的地方,请指出。如果是同一个人试图纠正我的语法,而我拒绝了,那么你的编辑是错误的。这也是一个不好的理由去否决投票。@finlaybob:我们都有同样的不知道。我认为,对于大多数人来说,无论他们有什么理由,点击“我不喜欢”都很容易,因为表达他们的意见需要暴露他们的昵称。最好至少告诉他们为什么你会投反对票,除非你对自己的决定感到羞愧。