将纹理映射到Mayavi网格

4

我正在使用Python中的Mayavi可视化一些数据。我有一个在3D空间中的表面,我想将一张图片映射到它上面。我查看了Mayavi文档,但是我只找到了这个,但并没有什么帮助。有人以前做过类似的事情吗?


我已经在matplotlib中实现了这个,但是帧率非常低... 按照Axes3D.plot_surface()的官方示例,只需将关键字facecolors设置为所需的纹理即可。我不记得是否在RGB中测试过,但在灰度中可以工作。 - PhilMacKay
2个回答

2

我发现mesh函数实际上确实需要一个scalars参数,该参数可以根据所选的颜色映射对应表面上的点进行着色。但是,我仍然不知道如何将任意RGB图像映射到曲面上。


好的。现在我知道你想做什么,但我不确定如何解决它。surfcolor 选项能帮到你吗? - ahelm

1

我猜你没有看到“Python scripting for 3D plotting”这一章节。其中有一些Mayavi命令的集合,可以在Python中使用。例如,{{link1:“numpy数组的3D绘图函数”}}部分。如果你跟随链接,你会发现一些关于这些函数的描述和每个函数的一个小例子。

对于你的情况,你应该选择meshsurf。这两个函数有点相似,但是又不同。例如,surf函数更像是mesh的子函数,在我看来。你不需要真正定义x和y坐标,只需要一个2D数组中的z坐标。如果你想使用mesh,你必须将所有三个坐标(x、y、z)作为2D数组传递。

我建议你查看一下这些例子。

这回答了你的问题吗?也许你应该更具体地说明你想做什么。

祝你有愉快的一天和节日快乐。


1
是的,我看到了。结果证明它写得很糟糕。我猜你也看到了,因为你也无法回答我的问题。 - katrasnikj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接