作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/06 17:32:50
用matlab画的三维图形一座山,想对某一高度以上的并且是在某个坐标范围内的表面染上不同的颜色

比如说想在坐标横坐标500-300,纵坐标400-600的山体表面图上不同的颜色
用matlab画的三维图形一座山,想对某一高度以上的并且是在某个坐标范围内的表面染上不同的颜色
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')