1、 姓 名: 刘奔 _学 号: 20124223 学 院: 理学院 专业班级: 地理信息系统一班 论文标题: 计算机图形学实验报告 2014年6月25日 161Matlab 绘图实验一、实验目的:1、掌握 MATLAB 的基本绘图函数。2、掌握绘图函数的用法、简单图形标注、简单颜色设定。二、实验要求:独立进行实验,完成实验报告。三、实验内容:1、MATLAB 简介:MATLAB 语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。2、MATLAB 的绘图功能:(1) 二维绘图:A、plot最基本的二维图形指令:1. 单窗口单曲线绘图;2. 单窗口多
2、曲线绘图;3. 单窗口多曲线分图绘图;4. 多窗口绘图;5.可任意设置颜色与线型;6.图形加注功能;7.fplot绘制函数图函数;8.ezplot符号函数的简易绘图162函数B、fill基本二维绘图函数:绘制二维多边形并填充颜色(2) 三维绘图:A、三维线图:plot3基本的三维图形指令B、三维网格图:mesh三维网线绘图函数C、三维表面图:surf三维曲面绘图函数,与网格图看起来一样四、作业:1、(1)在同一幅图上的(-pi,pi)区间,用 0.5的间隔绘制 sinx 的红色曲线,用 0.1 的间隔绘制sin(x+0.5)的绿色曲线,用 0.01 的间隔绘制sin(x+1)的蓝色曲线。(2)
3、给图的 x 和 y 轴添加标注。2、在-2*pi,pi区间以 0.1 的间隔绘制5cos(x.2+1)的曲线。3、编辑 M 文件,实现函数 4xexp(-(x.2+y.2)的各种图形,包括三维线性图、网眼图、曲面图,并对他们分别加图题和标注坐标轴4、编辑 M 文件,实现函数 2()(,)cos6s)xyfxyexy163的各种图形,包括三维线形图、网眼图、表面图、轮廓图、混合图,并对它们分别加图题和标注坐标轴。五、实验内容1、(1)在同一幅图上的(-pi,pi)区间,用 0.5的间隔绘制 sinx 的红色曲线,用 0.1 的间隔绘制sin(x+0.5)的绿色曲线,用 0.01 的间隔绘制sin
4、(x+1)的蓝色曲线。(2)给图的 x 和 y 轴添加标注。程序:x1=-pi:0.5:piy1=sin(x1);x2=-pi:0.1:piy2=sin(x2+0.5);x3=-pi:0.01:piy3=sin(x3+1);plot(x1,y1,r,x2,y2,g,x3,y3,b)xlabel(x1,x2,x3)ylabel(sin(x1),sin(x2+0.5),sin(x3+1)2、在-2*pi,pi区间以 0.1 的间隔绘制5cos(x.2+1)的曲线。程序: x=-2*pi:0.1:pi161y=5*cos(x.2+1);plot(x,y)title(y=5cos(x.2+1)六、实验
5、体会161这次实验学习 matlab 软件的绘图功能:二维绘图、三维绘图;matlab 软件还有丰富的图形修饰功能,如改变线条的形式和颜色;除此之外其还可以以多种形式如在一个图形中显示多个函数图形,一个 fig ure 中显示多个坐标系。总的而言 matlab 是一款十分有用的绘图软件。实验中遇到的困难就是指令比较多,格式刚刚开始接触觉得陌生,相信多做练习一定能掌握这个软件的使用要领。162DDA 实验报告一、实验目的对画线函数有个基本的了解实现网格的绘制和网格像素的填充熟练掌握 DDA 算法的实现过程二、实验内容(1) 实现 DDA 直线生成算法(2) 直线段起始点和终点坐标为(0,0)、(
6、6,4);(3) 采用不同的彩色显示两种算法生成的直线结果,并与 MFC 绘制的直线结果进行对比分析;三、实验结果为了方便比较,我画了三条线,其中黑线是两点确定的直线,红色是 DDA 算法填充网格像素的效果.163四、实验分析和总结1、实验分析首先要明确 DDA 算法的原理。对于 DDA 算法,按照像素划分,计算每个区间但纵坐标之间的关系,对下一个纵坐标数值进行取整,为了方便查找像素像素点(DDA 的优点就在于它的复杂度只有加法和取整两点)。2、实验总结在真正实验中,用网格表示像素,而为了便于观看,网格单位距离要大于 1,所以对于 DDA 算法来说像素区间大小大于 1(我是以 4 为例).另外
7、,因为是用网格表示像素,所以每个点的描绘都是填充网格,函数 CRect rect(x0,y0,x1,y) dc.FillRect(If Lengthclear; close; x=-2:0.1:2;y=exp(-x.2);x1=x-3; %图形向左平移 3个单位;x2=x+3; %图形向右平移3 个单位;plot(x,y,x1,y,:,x2,y,-.);xlabel(x); ylabel(y);结果见图 8.1-5 -4 -3 -2 -1 0 1 2 3 4 500.10.20.30.40.50.60.70.80.91xy图 8.1 函数图形平移如果是向上或向下平移 3 个单位, 相应的 MA
8、TLAB 代码为:clear; close; x=-2:0.1:2;y=exp(-x.2);y1=y+3; %图形向上平移3 个单位;y2=y-3; %图形向下平移3 个单位;plot(x,y,x,y1,:,x,y2,-.);xlabel(x); ylabel(y);结果见图 8.21610-2 0 2-3-2-101234xy图 8.2 函数图形平移练习 将练习 1 中的图形 在水平方向上进行伸缩.即作函数 的图形,2xey 2xsey分别取 绘图, 相应的 MATLAB 代码为:25.0sclear; close; x=-2:0.1:2;y=exp(-x.2);x1=x*0.5; %图形压
9、缩x2=x*2; %图形放大plot(x,y,x1,y,:,x2,y,-.);xlabel(x); ylabel(y);结果见图 8.3-4 -3 -2 -1 0 1 2 3 400.10.20.30.40.50.60.70.80.91xy图 8.3 函数图形缩放如果在垂直方向上进行伸缩,则作函数 的图形,分别取 绘图, 相应的2xsey15.0sMATLAB 代码为:clear; close; x=-2:0.1:2;y=exp(-x.2);y1=y*0.5; %图形压缩y2=y*2; %图形放大1611plot(x,y,x,y1,:,x,y2,-.);xlabel(x); ylabel(y)
10、;结果见图 8.4-2 -1.5 -1 -0.5 0 0.5 1 1.5 200.20.40.60.811.21.41.61.82xy图 8.4 函数图形缩放练习 3 将函数 的图形以原点为中心,逆时针旋转 度角. 相应的 MATLAB 代2xy3码为:clear; close; x=-2:0.1:2;y=x.2;x1=x*cos(pi/6)-y*sin(pi/6);y1=x*sin(pi/6)+y*cos(pi/6);plot(x,y,x1,y1,:);xlabel(x); ylabel(y);结果见图 8.5-4 -3 -2 -1 0 1 2-0.500.511.522.533.544.5xy实验总结1 通过这次实验,我熟悉的掌握了平面二维几何变换。2 并能够通过 MATLAB 实现程序的运行。