计算机图形学复习资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
>> patchm(latx,lonx,'y')
7)求十二边形与三角形的差,绘制成白色面片:
>> [latm,lonm]=polybool('minus',lat1,lon1,lat2,lon2)
>> patchm(latm,lonm,'w')
P99 矢量缓冲区
使用 bufferm 函数计算并返回缓冲区点集矢量:
大学课程《计算机图形学》复习资料
SUFFER
等直线步骤(图形绘制方法)
等值线图可以表现地质变量在空间上的分布规律。
已知平面区域的一系列给定位置点,每个位置点有一个相连的测量值或属性值。
对平面区域网格化。
Leabharlann Baidu
根据离散点的值,利用某种数学模型,插值确定给定网格节点的值。
绘制等值线。
-数据准备
—Surfer 支持多种数据格式:
格数据文件名(*.grd-文本格式和二进制格式)
–
Map→Contour Map→New Contour Map
克里金插值特点
一种进行插值估计的方法,他提供的是地质变量在一个区域内的平均值的最佳估计量,即最优
(估计方差最小)、无偏的(估计误差的数学期望为零)估计。
利用变异函数模型提供的空间结构信息,通过求解克里金方程组计算局部估计的加权因子,进
•
文本文件格式: *.txt
•
Golden 软件数据文件格式 *.dat,
•
Excel: *.xls
•
Lotus 工作表:*.wks
—需要三列数据,前两列为 x,y 坐标,第三列为变量值
-操作:
–
执行菜单命令 [Grid\Data],弹出 Open Data 对话框
–
选择要使用的文件
–
点击 0K,弹出离散数据插值对话框,选择要使用的数据集、网格化方法和要输出的网
5)计算多边形的并,绘成洋红色面片:
>> [latu,lonu]=polybool('union',lat1,lon1,lat2,lon2)
>> patchm(latu,lonu,'m')
(6)对多边形进行异或计算,显示成黄色面片:
>> [latx,lonx]=polybool('xor',lat1,lon1,lat2,lon2)
(3)用 bufferm 函数处理意大利的多边形,输出一个距离国界 1.5 度的缓冲区
[latb,lonb]=bufferm(ilat,ilon,1.5,'out');
当 x,y 均为向量时,要求向量 x 与向量 y 的长度一致,则 plot(x,y)绘制出以 x 为横坐标,y 为纵坐标的二维图形。
当 x 为向量、y 为矩阵时,plot(x,y)用不同颜色的曲线绘制出 y 行或列对于 x 的图形。y 矩阵的行或列的选择取决
于 x,y 的维数,若 y 为方阵或 y 矩阵的列向量长度与 x 向量的长度一致,则绘制出 y 矩阵的各个列向量相对于 x
3. plot(x,y,’参数’)
x,y 可以是向量或矩阵,与前面相同。参数选项为一个字符串,它决定了二维图形的颜色、线型以及数据点的图标
等。
4. plot(x1,y1,’参数 1’,x2,y2,’参数 2’ …)
说明:可以用同一函数在同一坐标系中画多幅图形,x1,y1 确定第一条曲线的坐标值,参数 1 为第一条曲线的选项
自动为其分配所需增加的空间
MATLAB while 循环语句,其功能是重复执行一条或者一组语句,重复次数由某个逻辑条件控制,—般来说其执行次
数是不能预先确定的。
MATLAB 中 if 条件语句的功能是:如果满足某个条件则执行一条或一组语句,否则就不执行其内部语句,或者执行
else 后面的语句。 这三种循环语句都要有 end 与之匹配。
图形绘制(重点)(常用形式)
MATLAB 最常用的二维绘图函数是 plot 函数,该函数将各个数据点用直线连接绘制图形。
MATLAB 的其它二维绘图函数中的绝大多数都是以 plot 为基础构造的。plot 函数可打开一个默认的图形窗口,它
还自动将数值标尺及单位标注添加到两个坐标轴上。
常用形式:1. plot(x,y)
数设置要与线网图完全一致。
(计算体积和面积 P50)
Upper Surface 组:可选定一网格文件作为上表面(曲面);或设定上表面的 Z 为常数值(水平平面)。 Lower Surface 组:可选定一网格文件作为下表面(曲面);或设定下表面的 Z 为常数值(水平平面)。
在选定上表面的和下表面之后, 点击 OK 执行体积和面积计算。结果显示在编辑器窗口,可保存成 ASCII 文本文 件, 或拷贝和粘贴到绘图窗口。
参数;x2,y2 为第二条曲线的坐标值,参数 2 为第二条曲线的选项参数… … 。
二维绘图为主(PLOT) 创建世界地图 使用地图制作工具箱,可以在 MATLAB 环境中读取、分析和显示地理信息,地图制作工具箱可以用简单的命令创 建地图。使用工具箱提供的地图数据,可以创建详细的底图,在底图上还可以绘制自己的结果。尽管地图制作工 具箱提供了很多投影方法和几种地图集数据,但是利用它还是可以创建对大部分应用都合适的底图。创建地球底 图的命令是 worldmap,该命令选择一种投影方法和适合指定区域的地图集部分数据。可以用某个洲或国家的名称 以及经、纬度范围定义区域。当指定更小的区域时,worldmap 会使用更高分辨率的地图集数据,还可以用经、纬 度范围指定目标区域,还可以用矩阵数据创建底图,如果要用更高分辨率的地图集数据显示更小的区域,使用州 名或纬度、经度的范围,如果需要对投影和底图数据有更多控制时,可以使用更低级的 axesm 命令。 axesm 命令 用于准备地图坐标系和设置初始投影参数,然后可以添加选择的地图集数据。 操作矢量数据(交集、并集、差集等) 目前用于表示地形的地理空间数据类型主要有矢量数据和栅格数据两种。矢量数据用点、直线和多边形表示对象 的形状;而栅格数据把空间分割成用值表示的单元。 矢量数据可以表示地图,这些矢量用经度—纬度或投影坐标对表示点集、线形地图或区域地图的特征。使用这种
MATLAB 提供的标准函数大部分都是由函数文件定义的,这足以说明函数文件的重要性。函数文件的目的是扩展
MATLAB 功能,也就是说,函数文件利用 MATLAB 语言构造了一个新的 MATLAB 函数,而且这个函数的使用方 法与 MATLAB 本身提供的库函数一样。
编程函数?
从理论上讲,只要有顺序、循环和分支 3 种基本程序结构,MATLAB 就可以构成任何一种程序并完成相应的工作。
(1)创建一个包围意大利的区域基准图,隐藏其边界
close all
clear all
worldmap('lo',[35,50],[3,23],'lineonly')
hidem(gca)
(2)读入 worldlo 数据并提取出表示意大利的多边形
load worldlo
[ilat,ilon]=extractm(POpatch,'italy');
点(Natural Neighbor)最近邻点 (Nearest Neighbor )径向基函数(Radiul Basis Function)多项式回归(Polynormial
Regress)修订谢别德 (Modified Shepard)三角形线性插值(Trianth Linear Interpolation )
表示方法时,地理数据以矢量格式保存,绘制成的地图称为矢量地图。这些数据由指定的坐标点列组成,并用其
他数据表示与相邻点的连接关系。
多边形布尔操作可以回答一系列与矢量数据多边形对象逻辑关系有关的问题。标准布尔操作包括交、并、差和异
或等,polybool 函数可以对两个矢量集合进行这些操作:
1)创建一个十二边形:
叠合、堆磊
图形迭合条件:范围一致、比例尺相同
可迭合内容:一幅线网图、多幅底图、等值线图、粘贴图
堆垒条件:[*.GRD]文件范围一致、比例尺相同。
可堆垒的内容:一幅等值线图在一幅线网图上方,两幅或多幅线网图堆垒。
堆垒方法:
在一个页面内依次打开待堆垒的图形文件,等值线图安排在线网图上方的适当位置,等值线图的 3D View 参
的一组二维图形;若 y 矩阵的行向量长度与 x 向量的长度一致,则绘制出 y 矩阵的各个行向量相对于 x 的一组二
维图形。
2. plot(x)
x 可以是向量或矩阵。
若 x 为向量,则绘制出一个 x 元素和排列序号之间关系的线性坐标图。
若 x 为矩阵,则绘制出 x 的列向量相对于行号的一组二维图形。
由 MATLAB 语言编写的磁盘文件称为 M 文件,其扩展名为.m,M 文件中还可以调用其它 M 文
件,也就是说 M 文件可以互相调用,甚至可以调用自己。
M 文件从功能上可分为两类:脚本文件和函数文件。调用脚本文件会自动执行一系列命令直至
输出结果;函数文件则为 MATLAB 提供了扩充性,通过函数文件,可以产生完成某一特定功能的函数。事实上,
与大多数计算机语言一样,MATLAB 有设计程序所必须的程序结构,即顺序结构、循环结构与分支结构。在 MATLAB 语言中,循环由 for 和 while 语句实现,分支主要由 if 语句实现。 MATLAB 提供的 for 循环语句,其功能是重复执行一条或一组语句的固定次数(也可以是零次) 如果 n 小于 1,语句的描述仍是合法的,只是 MATLAB 不执行其中的语句 x(i)=0,或者说执行零次。如果变量 x 不 存在,MATLAB 将自动生成该变量并为其分配存储空间;如果原先 x 变量的元素个数少于 n 个,则 MATLAB 也会
>> theta=(0:pi/6:2*pi)';
>> lat1=sin(theta);
>> lon1=cos(theta);
(2)创建一个三角形叠加到十二边形上:
>> lat2=[0 1 -1 0]';
>> lon2=[0 2 2 0]';
3)蓝线和红线将两个形状显示在一起:
>> axesm miller %miller 投影
行加权线性估计。
Kringing 经过插值圆滑,能够较好的体现出空间变量的总体分布趋势。
什么是插值
插值方法常用一个较简单的数学函数逼近一个复杂的未知函数,从而达到对位置点函数的预测作用。
(其他的方法了解,知道名字)
gulation wi 克里金 (Kriging)反距离权重(Inverse Distance Power) 最小曲率 (Minimum Curvature)普通邻
原数据文件。
当执行残差计算后, 数据文件和残差的数据都显示在工作表窗口内。
空白文件
由离散的 XYZ 数据文件生成网格文件时,Surfer 将根据原始 X,Y 的取值范围和所选用的数学模型,自动生成一个
矩形网格。但在实际工作中,由于某些区域缺少原始数据或由于其它原因,有必要由规则的网格中剔除一个或多
个由封闭多边形定义的区域,被剔除的区域形成空白。在画图时, 等值线图上空白部分的等值线被消除掉;在线网 图上, 空白部分成为平行于基点平面的区域。
>> plotm(lat1,lon1,'b')
>> plotm(lat2,lon2,'r')
4)计算多边形的交,绘制成绿色面片:
>> [lati,loni]=polybool('intersection',lat1,lon1,lat2,lon2)
>> patchm(lati,loni,'g')
计算机图形学概念
计算机图形学(Computer Graphics,简称 CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形
式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图
形的计算、处理和显示的相关原理与算法。
MATLAB 编程 M 文件(作用,两大类)
残差值
残差命令计算数据文件内某(X,Y)点 Z 值和在相同的(X,Y)处内插的 Z 值之间的差值。 用于计算残差值的公式是:
Zres = Zdat- Zgrd Zres 是残差的值,Zdat 是在数据文件内 Z 的值,Zgrd 是在同一 X,Y 处由网格文件内插计算出的 Z 值。由 Grid
→Residuals 选取要进行残差计算的网格文件和与其相比较的数据文件后,显示网格剖面对话框。 在数据列组选定数据文件中 X、Y 和 Z 数据所在的列;并设定输出文件中放置残差值的列。缺省的输出文件为