在mlab / mayavi / python中设置平行预期
作者:互联网
我在python中有一个代码来渲染python中的几个球体,如下所示:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import random
import mayavi
from mayavi import mlab
N = 4;
diams = .4*np.ones([N]);
xvals = np.arange(N);
yvals = np.zeros(N);
zvals = np.zeros(N);
pts = mlab.points3d(xvals, yvals, zvals, diams, scale_factor=1,transparent=True)
mlab.show()
图的默认视图会根据摄像机位置增加失真(更远的球体更小).我想通过某个命令设置到平行投影(更大的球体大小相同),所以它会自动渲染.
我没有找到谷歌或文档的直接解决方案.谢谢!
解决方法:
尝试在你的情况下设置fig.scene.parallel_projection = True或mlab.gcf().scene.parallel_projection = True.
作为一个简单的例子,比较(放大以放大差异):
import numpy as np
from mayavi import mlab
np.random.seed(1977)
x, y, z = np.random.random((3, 10))
mlab.points3d(x, y, z)
mlab.show()
当我们设置正交投影时:
import numpy as np
from mayavi import mlab
np.random.seed(1977)
x, y, z = np.random.random((3, 10))
mlab.points3d(x, y, z)
mlab.gcf().scene.parallel_projection = True
mlab.show()
标签:python,matplotlib,3d,mayavi,mayavi-mlab 来源: https://codeday.me/bug/20190609/1203259.html