Skip to main content
 首页 » 编程设计

python之用Python在Mayavi中复现下图的摄像机角度

2025年05月04日8telwanggs

我有下图说明如何剪切一个盒子:

我想按如下方式绘制我的数据(请注意,球体的坐标未被剪切,即球体位于一个完美的立方体中)

我使用mlab和下面的代码实现了当前定位

# Achieve x-y view. 
mlab.view(azimuth=0, elevation=0, distance=3.0) 
# Rotate along x axis to expose part of the top of the box. 
pts.actor.actor.rotate_x(30) 
# Move camera down to compensate for rotation. 
mlab.move(up=-0.37) 

有没有办法通过暴露立方体的一些右侧,同时保持 x 轴完全水平来操纵相机,使数据看起来更像插图?

编辑:mlab.view(azimuth=0, elevation=0, focalpoint=[4, 4, 0], distance=30.0) 生成我想要的视角。然而,我只能看到盒子在一边,在远处。缩放相机会导致框从图像中消失,因为它放大到点 x, y, z = [4, 4, 0]。有什么方法可以“放大”图片的相关部分吗?

请您参考如下方法:

根据 http://docs.enthought.com/mayavi/mayavi/auto/mlab_camera.html (函数“ View ”)您可以使用参数方位角(xy 旋转)、仰角(z 角)和距离(半径)作为球面坐标。 因此,对于 xy 平面的旋转,您应该将方位角更改为所需的角度(以度为单位)。那么怎么样

mlab.view(azimuth=30, elevation=30, distance=3.0) 

下面的其余代码可能可以用这 3 个参数完全补偿

编辑: 这不是想要的结果,它更像是

mlab.view(azimuth=7.59, elevation=7.59, distance=30.0) 

然后由 stackoverflow.com/questions/25783180/how-to-set-zoom-factor-in-mayavi 解释放大 另请参阅此答案的评论