问题标签 [tetrahedra]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
computational-geometry - 在使用 CGAL 进行四面体网格剖分期间保留面片编号
输入
我有几个网格.off
格式,它们一起包含一个卷。例如, takepatch-01.off
和patch-20.off
CGAL patch-30.off
-4.11 在examples/Mesh_3/data/patches
.
期望的输出
我想得到这个体积的四面体网格并将其保存为.mesh
格式。困难的部分是我希望与三角形对应的每条线都以数字 0、1 或 2 结尾,指示三角形对应于哪个输入补丁。目前,我不关心顶点或四面体的标签。
几乎可以工作的解决方案
我尝试修改 CGAL 示例examples/Mesh_3/mesh_polyhedral_complex.cpp
(已标记修改部分):
这将创建一个好看的四面体网格并将其保存到out.mesh
. 但是,所有三角形都有一个标签 1,如以下摘录所示(out.mesh 中的第 1318--1328 行)。
当我在 medit 中显示结果时,所有三角形都具有相同的颜色,而(以另一种方式提出问题)我希望每个输入补丁具有不同的颜色。
问题
在上面的示例中我需要修改什么?
边注
我注意到 out.mesh 似乎包含每个三角形的两个副本。这与问题有关吗?我怎样才能摆脱副本?
相关问题
已经有一个类似的问题。不同之处在于它们只有一个文件并尝试通过颜色传达补丁信息,而我的补丁位于单独的文件中。
geometry - 如何清理这个 Emily 网格为 tetgen 做准备?
我之前曾在 github 上问过这个问题,但从未深入探讨过。现在我已经把它捡起来了,并试图让这个网格四面体化,但我不断收到错误,见下文。虽然声明清楚地说“找到一个段和一个子面相交”,但我不知道我该如何解决这个问题?这里的问题更准确地说是如何找到网格是否具有开放边界以及如何定位它并在可能的 blender 中修复它?我问的是开放边界,因为显然具有开放边界的“camel.off”给出了相同的错误。我什至尝试使用另一种几何处理工具,但没有发现任何漏洞,而且它的自动修复也不起作用。 我得到了 obj文件Emily 的 3D 扫描并移除所有东西,例如睫毛、眼球、内部和外部额外的子几何形状。我正在使用搅拌机导出并使用 libigl tetgen 示例来查看它是否有效。我检查了网格,我没有看到拓扑中的任何孔,我使用搅拌器网格填充功能填充的基本孔。见附图。 在 libigl 中,我在使用 tetgen 处理之前在查看器中启动了它,它看起来不错,我还尝试了所有搅拌机清理工具,请参阅.
有没有办法在尝试创建确保平稳运行的四面体网格之前自动进行更多预处理?请指教。
algorithm - 是否有快速的四面体-四面体碰撞检测算法,它也返回碰撞点?
我正在编写一个 3D 游戏引擎,当前的碰撞检测不会返回碰撞点。是否有任何用于四面体(或者可能是 3D 三角形)的快速碰撞检测算法,可以返回碰撞点?
mesh - CGAL 3D Mesh:如何确保域的相对侧之间始终至少有两个元素?
我正在使用 CGAL 包3D 网格生成将涡轮叶片的三角模型转换为四面体网格。但是,我的下游应用程序需要在域的相对两侧之间至少有两个四面体。除非我设置得很低,否则我edge_size
会Mesh_criteria
得到一个包含连接域相对侧的四面体元素的网格,这会使下游应用程序不愉快。
是否有可能修改例如mesh_polyhedral_domain_with_features.cpp示例以确保这一点?我似乎记得在MeshGems-Tetra中有这样一个选项(在功能上似乎与这个 CGAL 包相似),但到目前为止我在 CGAL 中找不到任何东西。
python - 给定一个点和大量的四面体,如何高效判断该点在哪个四面体中
假设我们将点定义为三个浮点数的元组,而四面体定义为四个点的元组。
假设我们有一个四面体和一个点,我们可以按照 如何检查点是否在四面体中描述的解决方案来确定该点是否属于四面体? 那里的关键思想是确定该点是否在四面体的四个侧面的内侧。
我的问题。给定一个点和 N 个四面体,其中 N 约为 700 万,我需要确定该点在哪个四面体中。我们将关心重复测试的性能,有大量的分数。
附加信息:
可以使用上面提到的方法对这些四面体进行一一检查。但考虑到我有大量的四面体,这可能太慢了。
问题设置中有一个特定的点。这些四面体是从用于解决医学成像问题的 FEM(有限元方法)问题中获得的(它们构成了患者的大脑)。也许 FEM 本身与这个问题无关,但我们可以利用这些四面体彼此相邻并且在这些四面体模拟的空间中没有“洞”这一事实。
除了相邻的边界外,四面体没有交点。所以,这个问题应该有一个唯一的解决方案,除非在边界处,在这种情况下,可以让任何一个相交的四面体来回答我的问题。
没有在输入上给出四面体的特定顺序。四面体的形状是否规则并没有规定。
关于有效解决问题的任何想法?Python 是解决这个问题的首选。
谢谢!
geometry - 给定其他三个,如何计算四面体的第四个顶点?
我想计算正四面体的第四个顶点。我有坐标
{0, 0, Sqrt[2/3] - 1/(2 Sqrt[6])}, {-(1/(2 Sqrt[3])), -(1/2), -(1/(2 Sqrt[6]))} 和 {-(1/(2 Sqrt[3])), 1/2, -(1/(2 Sqrt[6]))}
有人可以帮忙吗?
computational-geometry - CGAL Mesh_3 错误:违反断言!表达式:minimal_size_ > 0 || sq_d > 0
我的应用程序使用 CGAL 创建四面体网格。输入是六个补丁(每个补丁都以 OFF 文件的形式)形成域的边界,以及一个具有特征边缘的文件(补丁之间的接口)。
感谢我在这里和这里的帮助,它已经完美地运行了很多次。然而,最近我遇到了这个看似无害的例子:
请注意,底部补丁是圆柱体的网格,即域不是凸的。
这失败并显示以下错误消息
我已经激活了断言上方的调试输出。就在崩溃之前,它会打印以下内容
要看到这一点,必须非常靠近三个特征折线相交的角落(16.1 2.74455 159.976)
进行缩放。
问题 1
怎么了?
我的猜测是,在构建保护球时,所需的平方半径会以某种方式下降到 10^-60 之类的值,这被认为是零。但这不应该发生,对吧?我尝试通过更改几个输入参数(目标边缘尺寸、表面公差等)来帮助它,但无济于事。
问题 2(如果无法回答问题 1)
你能指出我在论文中的确切位置吗?
考虑到我对 Delaunay 三角剖分有足够的了解,我花了几个小时阅读 [ 7 ] 和 [ 8 ]。然而,我需要更多的时间来理解算法的细节和实现以找出问题所在。因此,任何帮助(即使它只是限制我应该搜索的区域)都会受到赞赏。
相关问题
我已经用谷歌搜索了,但没有找到太多。
points - 如何确定四面体三角形面的法线?
四面体由点给出:p0 = (2, -1,0), p1 = (2,1,0), p2 = (-1,1,0), p3 = (1,0,4)
如何确定四面体三角形面的单位法线(朝外)?
以及如何计算包含四面体面的平面的隐式方程?
points - 如何计算包含四面体面的平面的隐式方程?
四面体由点给出:p0 = (2, -1,0), p1 = (2,1,0), p2 = (-1,1,0), p3 = (1,0,4)
如何计算包含四面体面的平面的隐式方程?