用matlab画的三维图形一座山,想对某一高度以上的并且是在某个坐标范围内的表面染上不同的颜色

比如说想在坐标横坐标500-300,纵坐标400-600的山体表面图上不同的颜色... 比如说想在坐标横坐标500-300,纵坐标400-600的山体表面图上不同的颜色 展开
 我来答
真greatdju
推荐于2018-04-23 · TA获得超过3852个赞
知道小有建树答主
回答量:1300
采纳率:91%
帮助的人:688万
展开全部
clear;clc;
[x,y,z]=peaks;
z=abs(z);%自己把数据改掉
figure('name','原始图')
surf(x,y,z);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure('name','染色图');
map=colormap;
userdefcolor=[.5 .5 .5]%假设你想染成这个颜色(50%灰),你可以自己改
c=round((z-min(z(:)))/(max(z(:))-min(z(:)))*(size(map,1)-1))+1;
c(z>3&x>-2&x<0&y>0&y<2)=size(map,1)+1;%假设高度大于3并且x∈[-2,0],y∈[0,2]的区域染色
map=[map;userdefcolor]
colormap(map);
surf(x,y,z,c,'CDataMapping','direct')

 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式