gpt4 book ai didi

python - Mayavi:绕y轴旋转

转载 作者:太空狗 更新时间:2023-10-29 18:34:02 29 4
gpt4 key购买 nike

我正在使用 mayavi 的 triangular_mesh 方法绘制 3D 网格。数据描述了 3D 空间中面朝下的人体轮廓(因此 cmap 可用于表示与相机的距离)。

这是用于生成绘图的代码(面和顶点来自外部对象,这里显示的太多了):

from mayavi import mlab

import math
import numpy as np
import sys
import os


fig = mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1), size=(1920, 980))

a = np.array(this_mesh.vertices - refC.conj().transpose()) # this_mesh is an object created from external data files

this_mesh.faces = this_mesh.faces.astype(int) -1 # mesh data is generated by matlab, which is 1-indexed

m = mlab.triangular_mesh(x, y, z, this_mesh.faces, opacity=0.75)

mlab.axes(extent=[-1100, 1100, -1100, 1100, -1100, 1100])

在不移动相机的情况下,剪影面朝下。为了正面查看模型,我正在改变相机的方位角和仰角以自上而下查看图表。这显示了预期的轮廓。

mlab.view(azimuth=0, elevation=180)
mlab.show()

我的下一个任务是创建一系列图像,其中相机围绕情节平移,从面向右侧的剪影开始,到面向左侧结束。

复杂的是,为了获得深度信息的颜色图,我已经移动了 View 的方位角和仰角(如上面的代码所示)。 Mayavi 比 matplotlib 有更多移动相机的选项,但它似乎没有办法绕 Y 轴旋转,所以我猜我需要对方位角和仰角执行一些复杂的计算才能实现结果相同 - 但我不知道从哪里开始(我是 3D 空间工作的新手,我的大脑还没有那样想)。

谁能指出我正确的方向?

最佳答案

事实证明,对此有一些解决方法。

您可以独立于摄像机在 Actor 的轴上旋转 Actor 。 (这会使可视化与数据标签不一致,但由于我实际上隐藏了图形的轴,因此在这种情况下无关紧要。)

您需要做的就是:

m.actor.actor.rotate_y(desired_angle)

...您可以开始了。

关于python - Mayavi:绕y轴旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38790724/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com