Sage 3D绘图:如何调整Z轴纵横比至XY轴宽度的4倍?
解决Z轴拉伸问题的方法
要实现Z轴视觉高度为X/Y轴宽度的4倍,你只需要在show()函数中添加aspect_ratio参数来调整三个轴的显示比例。同时,你可以简化模长的计算逻辑,让代码更简洁。
修改后的完整代码
var('x','y') assume(x,'real') assume(y,'real') z = x + I*y f = (z+1)*(z-1) w = abs(f) # 直接用abs()计算复数模长,等价于原代码的sqrt(expand(f*f.conjugate())) W = plot3d(w, (x,-2,2), (y,-2,2), color='purple', opacity=0.8) show(W, figsize=8, aspect_ratio=(1,1,4)) # 设置X/Y/Z轴的显示比例为1:1:4
关键参数说明
aspect_ratio=(1,1,4):这个参数控制三个轴的视觉缩放比例,其中:- 前两个值
1,1表示X和Y轴保持等比例显示; - 第三个值
4表示Z轴的视觉长度是X/Y轴视觉长度的4倍,正好满足你“Z轴拉伸至X/Y轴宽度4倍”的需求。
- 前两个值
abs(f):Sage内置的复数绝对值函数可以直接计算f(z)的模长,比手动计算sqrt(f*f.conjugate())更简洁高效,结果完全一致。
效果验证
修改后,Z轴的视觉高度会是X/Y轴宽度的4倍,同时保留原有的数值范围(X/Y∈[-2,2],Z∈[0,8]),不会改变函数的实际数值,只是调整了可视化的比例。
内容的提问来源于stack exchange,提问作者Andrew Davidson
相关产品推荐
相关产品推荐

