python - 交叉 3D 网格 python

标签 python intersection mesh primitive

我刚开始使用 3D 网格,面向用于有限元分析。我想在立方体状矩阵中模拟 Material 的夹杂物(任何形状,但主要对球体和椭圆体感兴趣)。这些夹杂物不应彼此重合。

所以我想为python使用某种包,它可以绘制原始对象,查找它们的交集(如果存在)并导出几何(或对其进行网格化并导出)。对于球体,我正在编写自己的解决方案,但我认为将其扩展为球体以外的任何其他形状都非常困难。

在寻找合适的库/模块几天后,我无法决定应该使用哪个。

我想使用 python 作为主要语言,因为它很简单,开源并且我已经知道了一点。
因此检查了这个链接:Good geometry library in python?

但:

  • SymPy。似乎它仅适用于 2D 对象。
  • 幽门螺杆菌。在其谷歌代码页中看起来已停产。
  • CGAL。它似乎是最先进的,但我找不到它是否有交叉点。
  • 几何简单。也停产了,我相信它不能处理 3D 对象。
  • python 。缺乏文档是这里的一个重要问题。
  • 打开网格。这似乎是一个不错的选择,但我看不出它是否有交叉点。

  • 我可能缺少一些功能或库。对不起。

    如果真的有必要和有用,我可以尝试使用 C++,它似乎有更多的几何库,如 here 中所述。 , herehere .
    另外,我想我应该提到我主要在 Windows 10 上工作,我在 Linux 方面的经验很少,但我可以挑战自己。

    总结一下我的问题:python 中是否有任何好的库(如果可能)可以找到 3D 对象之间的交叉点?我错过了我应该知道的任何功能或库吗?对于正确方向的任何建议,我将不胜感激。

    非常感谢提前!

    最佳答案

    您可能想查看 pygalmesh (离开我的动物园)。它与 CGAL 接口(interface),因此使用水平集函数进行网格构造。实现了所有域组合(交叉点、联合、差异)。

    enter image description here

    关于python - 交叉 3D 网格 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51476722/

    相关文章:

    将边集合转换为三角形集合的算法

    c++ - 多个网格或单个网格中的多个对象?

    GPU 的 Python 编码

    python - 你如何使用 Pyscript 输入和输出文本?

    Java 找出两个数组中的共同元素

    javascript - 三个js平面几何体旋转时消失

    python - NLTK 中的简单标记化问题

    python - 什么是命名空间对象?

    algorithm - 文件的交集

    c++ - 用于快速射线相交的线段容器? (二维)