标签:python matplotlib 3d mayavi mayavi-mlab
我在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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。