MATLAB三维图变黑 | shading interp作用

问题

利用surf函数画三维图在xoy平面的投影时,画出的图像较黑,如下图所示。
图1

原因

原因在于坐标轴取点太密,surf的边界是黑的,所以看起来全黑了。

解决

用mesh画,画完加一句shading interp。后续图像如下所示。
图2

shading interp作用

对曲面或图像对象的颜色着色进行色彩的插值处理,使色彩平滑过渡。

执行代码

已知 x ∈ [ 0 , 1 ] x\in[0,1] x[0,1] y ∈ [ − 1 , 1 ] y\in[-1,1] y[1,1] ( 1 − x ) 2 + y 2 ) ∈ [ 0 , 1 ] \sqrt{(1-x)^2+y^2) }\in[0,1] (1x)2+y2) [0,1]
函数 f ( x , y ) = 2 x − 2 x 2 + y 2 2 x 2 + 2 y 2 + 1 − 2 x f(x,y)=\frac{2x-2x^2+y^2}{2x^2+2y^2+1-2x} f(x,y)=2x2+2y2+12x2x2x2+y2
画出该函数在xoy平面上的图像表示。

clear;
clc;
f=@(x,y)(2.*x-2.*x.*x+y.*y)./(2.*x.*x+2.*y.*y+1-2.*x);
x=0:0.01:1;
y=-1:0.01:1;
[X,Y]=meshgrid(x,y);%meshgrid()生成二维网格矩阵,
%将输入的两个向量进行相应的行扩充和列扩充以得到两个增广矩阵,对该矩阵可应用二维函数
Z=f(X,Y);
Z(sqrt((1-X).^2+Y.^2)>1)=NaN;  %限定定义域
%surf(X,Y,Z);
mesh(X,Y,Z); %只有网格
shading interp
colorbar; %添加色标,生成与高度对应的图例(显示出最大值和最小值)
view(0,90); %投影在xoy轴

参考

怎么用matlab画指定定义域内的二元函数图像
MATLAB 三维图形漆黑无比
shading interp作用

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值