问题标签 [trimesh]

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.

0 投票
0 回答
27 浏览

trimesh - Trimesh:在裁剪网格时保留纹理

我尝试使用trimesh slice_plane方法裁剪网格。我原来的网格有TextureVisuals. 但是,生成的网格不再具有纹理或颜色。有没有办法进行裁剪并保留裁剪片段上的纹理?

0 投票
0 回答
29 浏览

python - 在每一帧的 Trimesh 包中更新几何图形在场景中的位置

我正在尝试使用 python 中的 Trimesh 包创建动态模拟。我在场景中创建了一些几何图形(例如一些球体)并将它们放入场景列表中。我scene.show()用来形象化它们。但是我怎样才能更新它们在每一帧中的位置来制作一个简单的动画呢?我查看了包作者创建的示例文件callback.py( https://github.com/mikedh/trimesh/blob/master/examples/viewcallback.py ),但此代码正在对几何图形应用转换。如何使用回调函数手动更新场景中几何图形的位置(或球体的中心)?

例如,我采用一个球体:

然后我想使用以下方法更新其中心:

My_defined_position 是 (3,) 数组,每帧都在更新。

0 投票
1 回答
198 浏览

python - Python trimesh x 横截面会产生奇怪的结果

我有一个简单的盒子(宽度:400,长度:400,高度:50):

在此处输入图像描述

这里是创建该框的代码:

问题

如您所见,盒子的顶面位于 处z=0,而下表面位于 处z=50

现在,当我使用 x 作为法线做横截面时,我希望能清楚地看到这一点:

...但我得到的是:

在此处输入图像描述

您可以清楚地看到盒子的横截面没有正确定位,因为它应该从 开始z=0,并延伸到z=50(上图的水平轴)。

有趣的是,使用 z-normal 获得横截面效果很好:

在此处输入图像描述

..如果我要求 z=-10 的横截面,那里不应该有盒子,它理所当然地抱怨。

AttributeError:“NoneType”对象没有属性“to_planar”

如何获得 x 法线的正确横截面?

编辑

我还在这里发布了问题: https ://github.com/mikedh/trimesh/issues/1359

我认为您需要在使用 to_planar 时明确指定矩阵,就好像未指定矩阵一样,该函数必须适合一个可能不是您想要的平面。

编辑 2

替代方案:也许可以将网格绕 x 轴旋转 90 度,然后做一个 z 形截面。我试过了,但不知何故它不起作用:

在此处输入图像描述

0 投票
1 回答
35 浏览

python - 如何在 trimesh 中设置窗口大小和位置

我在 Raspbian GNU/Linux 10 (buster) armv7l 上安装了 trimesh 3.9.32。这个片段:

显示一个窗口溢出到我的第二个显示器中。我想控制窗口大小和位置。我尝试使用trimesh.viewer.SceneViewer,但我得到了AttributeError: module 'trimesh' has no attribute 'viewer'。有什么方法可以在我的主显示器上设置窗口大小和位置或使其全屏显示?

0 投票
1 回答
199 浏览

python - 如何确定 trimesh.exchange.ply.export_ply 的输出路径目录?

我正在处理 ply 文件的数据集。最终,我需要将层文件导出到单独的目录中。

现在,如果我使用函数 trimesh.exchange.ply.export_ply,我似乎无法理解如何设置导出网格的目录。我已阅读文档,但没有提及如何设置输出路径

或者,我正在使用 mesh.export(path) ,它确实成功导出文件,但是对于某些文件, 在 meshlab 或任何其他编辑器中打开时会出错

关于如何导出为 ply 文件的任何建议?

0 投票
0 回答
43 浏览

python - 使用 trimesh 制作一个不透水的形状

我们正在尝试使形状防水,我们正在使用 trimesh 库。但是,trimesh.repair.fill_holes 和 meshlab 的过滤器都没有给出好的结果。

我们有同样的问题:

完成部分网格并使其防水

0 投票
0 回答
136 浏览

python - Python:网格上的曲面积分

问题

python - 如何计算python中网格外表面的指定函数的表面积分?

代码

我试图创建一个最小的可行示例。在此示例中,我尝试计算使用trimesh定义的框的表面积。

在此处输入图像描述

mesh.area我只计算表面积,因为可以使用trimesh包

这就是为什么我转向quadpy进行表面集成的原因。

这是代码:

问题

我收到以下错误:

断言错误

0 投票
0 回答
35 浏览

3d - 如何检测三角形网格中的空腔?

“空腔”并不是指网格中的错误——所有网格都被假定为防水歧管。

正式定义:三角形 T 是一个直接空腔,如果不可能放置一个具有给定半径的球体 S 使得 S 只接触 T。三角形 T 是一个间接空腔,如果一个球体 S 开始时没有无碰撞路径在网格边界框之外到 S 仅接触 T 的位置。

直接腔和间接腔的区别仅用于定义目的。我正在寻找的方法不需要区分两者。

这说明了问题(在 2D 中):

在此处输入图像描述

请注意,这就是 C 在 3D 中的样子: 在此处输入图像描述

最好我想在原始网格上检测这些空腔,但重新划分网格是一种选择。

0 投票
1 回答
353 浏览

python - 如何在 Open3d 中对齐/注册两个网格?(Python)

我有两个 .ply 文件,其中包含形状相似的对象网格。它们最初是未对齐的。我想实现两个网格对象的全局注册。有没有一种方法可以做到这一点,而无需最初导入点云数据,进行全局注册,然后重新构建网格?

我已经尝试了 open3d 文档(http://www.open3d.org/docs/0.12.0/tutorial/pipelines/global_registration.html)中列出的步骤,它适用于点云。然而,从点云重建网格具有挑战性,因为它们是一个相对复杂的形状,所以我想避免这种情况。

先感谢您!

0 投票
0 回答
12 浏览

python - 使用trimesh从stl文件中获取顶点和面作为numpy数组

我有一个 STL 文件,我现在需要使用 trimesh 读取该 STL 文件的顶点和面值。

如何从 myobj 读取顶点?