WxMaxima如何绘制定义在R³曲面上的函数并按函数值着色
WxMaxima R³曲面按函数值着色实现方案
完全可以实现该需求,借助WxMaxima自带的draw扩展包即可完成「绘制3D曲面+按曲面上的函数值自动着色」的效果。
实现核心逻辑
你需要先将目标曲面(如球体)转换为参数方程形式,再指定enhanced3d参数关联你定义在曲面上的目标函数,绘图时会自动根据函数值的取值范围映射为曲面的填充色。
完整可运行示例(球面着色)
以下代码可直接在WxMaxima中运行,实现按球面点的z坐标值着色的效果:
/* 加载绘图扩展包,标准WxMaxima版本均自带该包 */ load(draw); draw3d( /* 自定义着色规则:此处为按z坐标着色,可替换为任意曲面上的函数,例如x*y + z^2 */ enhanced3d = z, /* 可选:自定义配色方案,heat为热力色,gray为灰度,默认是彩虹色 */ palette = [heat], /* 调整网格参数,提升曲面平滑度 */ xu_grid = 60, yv_grid = 60, /* 球面参数方程定义 */ parametric_surface( sin(v) * cos(u), sin(v) * sin(u), cos(v), [u, 0, 2*%pi], [v, 0, %pi] ) );
自定义调整说明
- 替换其他曲面:修改
parametric_surface内的三个坐标参数表达式,同时调整对应u、v参数的取值范围即可 - 更换着色规则:修改
enhanced3d后的表达式,只要是曲面上点的x、y、z坐标可计算的合法函数都支持 - 调整显示效果:修改
xu_grid、yv_grid的数值可调整曲面的精细程度,数值越大曲面越平滑,渲染耗时也越高
内容的提问来源于stack exchange,提问作者GG1
相关产品推荐
相关产品推荐

