山区地貌图 在某山区(平面区域(0,2800)´(0,2400)内,单位:米)测得一些地点的高程(单位:米)如表1,试作出该山区的地貌图.

文章详细介绍了如何利用MATLAB中的mesh、surf以及相关函数,如meshc、meshz、surfc、surfl和waterfall,结合给定的山区高程数据,绘制出不同类型的三维地表现象图,包括等高线图和瀑布图。
摘要由CSDN通过智能技术生成

山区地貌图 在某山区(平面区域(0,2800)´(0,2400)内,单位:米)测得一些地点的高程(单位:米)如表1,试作出该山区的地貌图.

表1

2400

2000

1600

1200

800

400

0

1430 1450 1470 1320 1280 1200 1080 940

1450 1480 1500 1550 1510 1430 1300 1200

1460 1500 1550 1600 1550 1600 1600 1600

1370 1500 1200 1100 1550 1600 1550 1380

1270 1500 1200 1100 1350 1450 1200 1150

1230 1390 1500 1500 1400 900 1100 1060

1180 1320 1450 1420 1400 1300 700 900

Y/X

0 400 800 1200 1600 2000 2400 2800

  1. 绘制三维曲面函数

MATLAB提供了mesh函数和surf函数来挥之三维曲面图,常用图形还有瀑布图(waterfall函数)、三维曲面的等高线图(contour和contour3函数)。

  1. mesh函数

Mesh函数用于绘制三维网格图,在不需要绘制特别精细的三维曲面图时,可以通过三维网格图来表示。Mesh函数的调用格式:

mesh(x,y,z)

注意:一般情况下,x、y、z是同型矩阵,x、y是网格坐标矩阵,z是网格点上的高度矩阵

1、mesh(x,y,z),MATLAB认为颜色的设定正比于图形的高度,可得到层次分明的三维图形

clear;clc;

x0=0:400:2800

y0=0:400:2400

z0=[1430 1450 1470 1320 1280 1200 1080 940;1450 1480 1500 1550 1510 1430 1300 1200;1460 1500 1550 1600 1550 1600 1600 1600;1370 1500 1200 1100 1550 1600 1550 1380;1270 1500 1200 1100 1350 1450 1200 1150;1230 1390 1500 1500 1400 900 1100 1060;1180 1320 1450 1420 1400 1300 700 900]

x=0:10:2800

y=0:10:2400

z=interp2(x0,y0',z0,x,y','spline')

mesh(x,y,z)

title('mesh(x,y,z)')

  1. c称为色标(color scale)矩阵,用于指定曲面的颜色。

(1)meshc(x,y,z),用来绘制等值线网格图。

clear;clc;

x0=0:400:2800

y0=0:400:2400

z0=[1430 1450 1470 1320 1280 1200 1080 940;1450 1480 1500 1550 1510 1430 1300 1200;1460 1500 1550 1600 1550 1600 1600 1600;1370 1500 1200 1100 1550 1600 1550 1380;1270 1500 1200 1100 1350 1450 1200 1150;1230 1390 1500 1500 1400 900 1100 1060;1180 1320 1450 1420 1400 1300 700 900]

x=0:10:2800

y=0:10:2400

z=interp2(x0,y0',z0,x,y','spline')

meshc(x,y,z)

title('meshc(x,y,z)')

(2)meshz(x,y,z),用来绘制包含0平面的网格图。

clear;clc;

x0=0:400:2800

y0=0:400:2400

z0=[1430 1450 1470 1320 1280 1200 1080 940;1450 1480 1500 1550 1510 1430 1300 1200;1460 1500 1550 1600 1550 1600 1600 1600;1370 1500 1200 1100 1550 1600 1550 1380;1270 1500 1200 1100 1350 1450 1200 1150;1230 1390 1500 1500 1400 900 1100 1060;1180 1320 1450 1420 1400 1300 700 900]

x=0:10:2800

y=0:10:2400

z=interp2(x0,y0',z0,x,y','spline')

meshz(x,y,z)

title('meshz(x,y,z)')

  1. surf函数用于绘制三维曲面图,各线条之间的补面用颜色填充。surf函数的调用格式为:

surf(x,y,z)

1、surf(x,y,z),MATLAB认为颜色的设定正比于图形的高度,可得到层次分明的三维图形

clear;clc;

x0=0:400:2800

y0=0:400:2400

z0=[1430 1450 1470 1320 1280 1200 1080 940;1450 1480 1500 1550 1510 1430 1300 1200;1460 1500 1550 1600 1550 1600 1600 1600;1370 1500 1200 1100 1550 1600 1550 1380;1270 1500 1200 1100 1350 1450 1200 1150;1230 1390 1500 1500 1400 900 1100 1060;1180 1320 1450 1420 1400 1300 700 900]

x=0:10:2800

y=0:10:2400

z=interp2(x0,y0',z0,x,y','spline')

surf(x,y,z)

title('surf(x,y,z)')

2、surfc(x,y,z),绘制了底层等高线图

clear;clc;

x0=0:400:2800

y0=0:400:2400

z0=[1430 1450 1470 1320 1280 1200 1080 940;1450 1480 1500 1550 1510 1430 1300 1200;1460 1500 1550 1600 1550 1600 1600 1600;1370 1500 1200 1100 1550 1600 1550 1380;1270 1500 1200 1100 1350 1450 1200 1150;1230 1390 1500 1500 1400 900 1100 1060;1180 1320 1450 1420 1400 1300 700 900]

x=0:10:2800

y=0:10:2400

z=interp2(x0,y0',z0,x,y','spline')

surfc(x,y,z)

title('surfc(x,y,z)')

.

3、surfl(x,y,z),考虑了有光照效果的表面图。

clear;clc;

x0=0:400:2800

y0=0:400:2400

z0=[1430 1450 1470 1320 1280 1200 1080 940;1450 1480 1500 1550 1510 1430 1300 1200;1460 1500 1550 1600 1550 1600 1600 1600;1370 1500 1200 1100 1550 1600 1550 1380;1270 1500 1200 1100 1350 1450 1200 1150;1230 1390 1500 1500 1400 900 1100 1060;1180 1320 1450 1420 1400 1300 700 900]

x=0:10:2800

y=0:10:2400

z=interp2(x0,y0',z0,x,y','spline')

surfl(x,y,z)

grid on

title('surfl(x,y,z)')

(三)集中对比

clear;clc;

x0=0:400:2800

y0=0:400:2400

z0=[1430 1450 1470 1320 1280 1200 1080 940;1450 1480 1500 1550 1510 1430 1300 1200;1460 1500 1550 1600 1550 1600 1600 1600;1370 1500 1200 1100 1550 1600 1550 1380;1270 1500 1200 1100 1350 1450 1200 1150;1230 1390 1500 1500 1400 900 1100 1060;1180 1320 1450 1420 1400 1300 700 900]

x=0:10:2800

y=0:10:2400

z=interp2(x0,y0',z0,x,y','spline')

subplot(3,2,1)

mesh(x,y,z)

title('mesh(x,y,z)')

subplot(3,2,2)

meshc(x,y,z)

title('meshc(x,y,z)')

subplot(3,2,3)

meshz(x,y,z)

title('meshz(x,y,z)')

subplot(3,2,4)

surf(x,y,z)

title('surf(x,y,z)')

subplot(3,2,5)

surfc(x,y,z)

title('surfc(x,y,z)')

subplot(3,2,6)

surfl(x,y,z)

title('surfl(x,y,z)')

(四)waterfall函数,用法及图形效果与meshz函数相似,只是它的网格线是在x轴方向出现,具有瀑布效果。

close all;

clear;clc;

x0=0:400:2800

y0=0:400:2400

z0=[1430 1450 1470 1320 1280 1200 1080 940;1450 1480 1500 1550 1510 1430 1300 1200;1460 1500 1550 1600 1550 1600 1600 1600;1370 1500 1200 1100 1550 1600 1550 1380;1270 1500 1200 1100 1350 1450 1200 1150;1230 1390 1500 1500 1400 900 1100 1060;1180 1320 1450 1420 1400 1300 700 900]

x=0:10:2800

y=0:10:2400

z=interp2(x0,y0',z0,x,y','spline')

waterfall(x,y,z)

title('waterfall(x,y,z)')

(五)等高线图分二维和三维两种形式,分别使用函数contour和contour3绘制。

close all;

clear;clc;

x0=0:400:2800

y0=0:400:2400

z0=[1430 1450 1470 1320 1280 1200 1080 940;1450 1480 1500 1550 1510 1430 1300 1200;1460 1500 1550 1600 1550 1600 1600 1600;1370 1500 1200 1100 1550 1600 1550 1380;1270 1500 1200 1100 1350 1450 1200 1150;1230 1390 1500 1500 1400 900 1100 1060;1180 1320 1450 1420 1400 1300 700 900]

x=0:10:2800

y=0:10:2400

z=interp2(x0,y0',z0,x,y','spline')

contour3(x,y,z)

title('contour3(x,y,z)')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值