使用Mayavi绘制隐式三次曲面时坐标显示错误的问题
解决Mayavi隐式曲面坐标错误的问题
你的问题出在调用mlab.contour3d时只传入了隐式函数值数组F,没有指定对应的x、y、z坐标范围。Mayavi默认会用数组的索引作为坐标轴的坐标值,而不是你定义的-10到10实际范围,这就导致了坐标显示完全错误。
只需要在contour3d中传入x、y、z三个坐标数组,就能让Mayavi使用实际的坐标范围绘制曲面:
import numpy as np from mayavi import mlab k = 2 x, y, z = np.ogrid[-10: 10: 200j, -10: 10: 200j, -10: 10: 200j] F = x**2 + y**2 + z**2 - x * y * z - k - 2 # 传入x、y、z坐标数组,指定实际范围 mlab.contour3d(x, y, z, F, contours=[0]) mlab.axes() mlab.show()
运行修正后的代码,曲面就会精准显示在所有坐标轴的-10到10范围内,不需要手动平移或缩放坐标。
内容的提问来源于stack exchange,提问作者Josh Lee
相关产品推荐
相关产品推荐

