搜档网
当前位置:搜档网 › 计算机图形学第五次实验报告

计算机图形学第五次实验报告

《计算机图形学》实验报告

实验十一真实感图形

一、实验教学目标与基本要求

初步实现真实感图形,并实践图形的造型与变换等。

二、理论基础

运用几何造型,几何、投影及透视变换、真实感图形效果(消隐、纹理、光照等)有关知识实现。

1. 用给定地形高程数据绘制出地形图;

2. 绘制一(套)房间,参数自定。

三.算法设计与分析

真实感图形绘制过程中,由于投影变换失去了深度信息,往往导致图形的二义性。要消除这类二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称之为消除隐藏线和隐藏面,或简称为消隐,经过消隐得到的投影图称为物体的真实图形。

消隐处理是计算机绘图中一个引人注目的问题,目前已提出多种算法,基本上可以分为两大类:即物体空间方法和图象空间方法。物体空间方法是通过比较物体和物体的相对关系来决定可见与不可见的;而图象空间方法则是根据在图象象素点上各投影点之间的关系来确定可见与否的。用这两类方法就可以消除凸型模型、凹形模型和多个模型同时存在时的隐藏面。

1).消隐算法的实现

1.物体空间的消隐算法

物体空间法是在三维坐标系中,通过分析物体模型间的几何关系,如物体的几何位置、与观察点的相对位置等,来进行隐藏面判断的消隐算法。世界坐标系是描述物体的原始坐标系,物体的世界坐标描述了物体的基本形状。为了更好地观察和描述物体,经常需要对其世界坐标进行平移和旋转,而得到物体的观察坐

标。物体的观察坐标能得到描述物体的更好视角,所以物体空间法通常都是在观察坐标系中进行的。观察坐标系的原点一般即是观察点。物体空间法消隐包括两个基本步骤,即三维坐标变换和选取适当的隐藏面判断算法。

选择合适的观察坐标系不但可以更好地描述物体,而且可以大大简化和降低消隐算法的运算。因此,利用物体空间法进行消隐的第一步往往是将物体所处的坐标系转换为适当的观察坐标系。这需要对物体进行三维旋转和平移变换。

常用的物体空间消隐算法包括平面公式法、径向预排序法、径向排序法、隔离平面法、深度排序

法、光线投射法和区域子分法。其中前三种算法最常用,它们的基础都是背面消隐原理。所谓背面消隐原理,即是相对观察点来说朝向后面的物体表面是不可见的,应被隐藏。下面只对平面公式法作详细介绍,其他方法可参看有关文献。

根据解析几何原理,通过标准的平面方程可以判断给定点是在平面的正面还是背面。平面公式法利用此原理来判断观察点位于物体表面的哪一面,如位于背面一侧,则表面不可见,应被消隐;反之则可见。对物体的任意表面,可将其划分为若干个平面,在根据平面上任意三点的坐标可以求得其平面方程。标准的平面方程为:

Ax+By+Cz+D=0;

其中A、B、C、D 为决定平面的常数。当把一个平面想象成一个凸型多面体时,设观察点坐标为(x,y,z),如果:

①Ax+By+Cz+D=0,则观察点(x,y,z)是该平面表面上的一个点;

②Ax+By+Cz+D>0,则观察点(x,y,z)在凸型多面体内部(称该表面是不可见的或隐藏的);

③Ax+By+Cz+D<0,则观察点(x,y,z)在凸型多面体外表面(称该表面是可见的),应被画出。

通过对物体进行适当旋转和平移后,可将物体变换到以观察点为原点的观察坐标系中,如果在观察坐标系中求得了平面的方程Ax+By+Cz+D=0,将观察点坐标代入上面的判断准则,则可得出如下的简单判据:

①D>0,则平面不可见,应被隐藏;

②D<0,则平面是可见面,应被画出。

2 图像空间的消隐算法

图象空间法基于物体三维模型的二维显示图形来确定物体或表面上的每一点与观察点的远近关系,从而判断哪些表面遮挡了其它表面。为了获得三维物体的二维显示图形,在对物体进行旋转和平移变化后,还需对物体进行透视投影变换。图像空间法包括Z缓冲区法、扫面线法、光线投射法和极值检测法等几种。以下是这几种算法的比较。

①Z缓冲区消隐算法简单、可靠,而且消隐和表现效果很好。但需要的内存容量大,运算复杂,费时;

②扫描线法克服了Z缓冲区法需要分配与屏幕上象素点的个数相同单元的巨大内存这一缺点;

③光线投射法的思想是:考察由视点出发穿过观察屏幕的一象素而射入场景的一条射线,则可确定出场景中与该射线相交的物体。在计算出光线与物体表面的交点之后,离象素最近的交点的所在面片的颜色为该象素的颜色;如果没有交点,说明没有多边形的投影覆盖此象素,用背景色显示它即可。

④极值检测法需与其它消隐算法结合适用,主要用来提高消隐速度。极值检测法通过计算物体表面的显示坐标的极大和极小值来判断这两个表面是否存在重叠。

2)光照模型

计算机图形学中真实感成像包括两部分内容:物体的精确图形表示和场景中光照效果的适当物理描述。光照效果包括光的反射、透明性、表面纹理和阴影。

在下面的讨论中,假定光源为点光源。从某点光源照射到物体表面上一点,再反射出来的光,可以分为三部分:环境光、漫反射光和镜面反射光。为可见物体的光照效果建立模型是一个非常复杂的过程,计算机图形学中光照模型可以由描述物体表面明暗度的物理公式推导出来。为了减少明暗度计算量,通常采用简化的光照计算经验模型。下面介绍一些基本的光照模型。

1 环境光

一个物体表面即使不直接暴露在光源下,只要其周围的物体被照亮,它也可能看得见,称为环境光。环境光没有空间或方向上的特征,在所有方向上和所有

物体表面上投射的环境光数量都恒定不变。

e a a

e a a I I K I I K =------环境光反射强度

环境光的强度

物体表面对环境光的反射系数

由于环境光只能为每个面产生一个平淡的明暗效果,因而在绘制场景时很少仅考虑环境光作用。

2 漫反射

设物体表面在P 点的法矢为N ; 从P 点指向光源的矢量为L ;N 与L 的夹角为θ;若N 与L 的夹角小于0或大

于90度,则光线被物体自身遮挡而照射不到P 点。由

Lambert 余弦定理可得点P 处漫反射光的强度为: cos ,[0,]2d p d p d I I K I K πθθθ=∈---入射光的强度

漫反射系数光线的入射角

如有多个点光源:,1cos n d p i d i i I I K θ==

3 镜面反射

镜面反射情况由Phong 模型给出:

s cos

I n s p s p I I K I V R n n αα=----镜面反射光在观察方向上的光强

点光源的强度与之间的夹角

与物体表面光滑度有关的

一个常数,表面越光滑,越大。

cos n s p s

I I K α= 考虑到受距离影响的衰减,上式重写为:

2

00cos /(d d )n s p s I I K d d α=+--为点光源到物体表面参考点的距离

为一参考值

4 简单光照模型

从视点观察到物体上任一点P 处的光强度I 应为环境光反射光强度Ie 、漫反射光强度Id 以及镜面反射光的光强度Is 的总和。

2

02

0cos cos /()()()/()e d s

n a a p d p s n a a p d p s I I I I I K I K I K d d I K I K L N I K R V d d θα=++=+++=+⋅+⋅+

在RGB 颜色模型中,把入射光强I 设为三个分量,分别代表RGB 三基色的光强,通过这些分量的值来调整光源的颜色。同样的,Ka 、Ks 、Kd 也有三个分量。于是,RGB 颜色模型形式: ()()()()()()n

r ar ar pr dr pr sr n g ag ag pg dg pg sg n

b

ab ab pb db pb sb I I K I K L N I K R V I I K I K L N I K R V I I K I K L N I K R V ⎧=+⋅+⋅⎪=+⋅+⋅⎨⎪=+⋅+⋅⎩

3)绘制真实感图形

下面我们采OpenGL 实现地球绕太阳的公转和月球绕地球的公转并自身带有一定速率的自转。

在DrawScene 函数中先画太阳椭圆线(DrawSunEllipse),在画太阳(DrawSun()),其次地球(DrawEarth()),在画地球椭圆线(DrawEarthEllipse()),最后画月亮(DrawMoon())。下面分别介绍各个图形是怎样表现出来的。

1 DrawSunEllipse():

画椭圆线是根据方程x*x/a*a+y*y/b*b=1;转换为三角表达形式:x=a*cos(angle),y=b*sin(angle);使angle 角度在[0,2*PI]中变化是绘点便可得到一个以点组成的椭

圆。

2 DrawSun():

画太阳比较简单,直接绑定纹理(glBindTexture()),,在绘球(gluSphere())即可。

3 DrawEarth():

想要在绘出地球的运行轨迹,即地球不论怎样转都在太阳的椭圆上,即须将进行模型平移(glTranslatef()),将当前的坐标系移到太阳椭圆的位置上来。考虑到绘制太阳和其椭圆时是在当前坐标系上进行绘制的,现在平移至太阳椭圆上,即只需在x,z轴上分别平移x=a*cos(angle),z=b*sin(angle),即glTranslatef(x,0,z);在到这个坐标系上来进行绘制;但此时地球并未随地球而转动,想实现这个效果可将模型平移中的x,z值变化,这里采用程序的多线程性,这里在Revolution()中while(TRUE)循环所有的angle角度值。注意因为系统处理速度较快,若不在x,z中设置相应的暂停函数,则很难看出效果,这里用Sleep(20)来暂停。

4 DrawEarthEllipse():

绘制地球椭圆时,注意此时的坐标系已在地球的位置上了,除非调用glLoadIdentity()重置坐标系函数。同绘制太阳椭圆原理一样,采用椭圆方程,只不过这里的椭圆大小是太阳椭圆的7倍,即x=(a/7.0)*cos(angle),z=(b/7.0)*sin(angle)

DrawMoon():绘制月球,同样月球是在地球的轨道上运行,同理,亦要平移模型坐标系,使x=(a/7.0)*cos(angle),z=(b/7.0)*sin(angle),同地球公转一样设置在多线程函数中Revolution(),调用glTransferf(x,0,z)定位到地球轨迹上,并实现月亮的公转。

5 视角的变换和视点的平移

此程序可通过上、下键来进行视点位置的前移或后移;通过左右实现视线方

向的左右变换。通过PgUp键实现视线向上翻转,通过PgDn实现实现向下翻转:在说其平移和变换时,先介绍glLookAt()函数,前三个函数为视点方向,中间三个为参考点(=视点方向+实现方向),后后三个参数为成像正立,一般设置为0,1,0。初始化视x=0.0f,y=0.0f,z=5.0f;在定义视线位置lx=0.0f,ly=0.0f,lz=-1.0f;glLookAt(x,y,z,x+lx,y+ly,z+lz,0,1,0);

视点位置平移:在xz平面内,仅需改变x,z值即可;前移:x+=lx*(一定速值);z+=lz*(一定速值);同理,后移x-=lx*(一定速值);z-=lz*(一定速值);

视线方向改变:当视线向右变换时,此时视角(MoveAngel按一定速率自增)改变,xz平面内lx,lz值改变,即lx=sin(MoveAngle),lz=-cos(MoveAngle);同理视线左边换时,MoveAngle按一定速率自减,使lx=sin (MoveAngle),lz=-cos(MoveAngle);

PgUp,PgDn的图像翻转实现:同理类似与视线的变换,只不过变换的平面不一样,PgUp和PgDn的上下翻转是在yz平面内实现,且在视线上下变换的同时,y点的视点位置亦要随之改变,这也就是翻转与视线变换的不同之所在了。

四、程序调试及结果的分析

本程序运行环境为VC下的opengl环境。

实验效果:

按“上、下”键可实现视点的前移和后退。

按“左、右”键可实现视线的左右变换。

按“PgUp、PgDn”键可实现实现的图像的翻转。

按“L”键可实现光源的启用或关闭。

由于实验代码比较长,本实验暂不将代码附在实验报告中。

运行结果展示:

关闭灯光后:

五.实验心得及建议

1.通过这次实验,我对OPENGL有了进一步的了解,也增添了对三维绘图的兴趣。

2.由于之前对OPENGL的了解比较少,所以程序中很多部分抄袭了网上的一些教程,以后有时间再自学OPENGL做进一步改进。

3.对于真实感图形需要有比较好的空间思维能力,去想像出如何将一个三维图形很好的投影到二维平面上。

4.对于真实感图形,我们除了要学会消隐的基本概念和思想方法外,还需要熟练运用颜色、纹理、光照等技巧。

计算机图形学实验报告

计算机图形学 实验报告 学号: 姓名: 班级:计算机 2班 指导老师:何太军 2010.6.19

实验一、Windows 图形程序设计基础 1、实验目的 1)学习理解Win32 应用程序设计的基本知识(SDK 编程); 2)掌握Win32 应用程序的基本结构(消息循环与消息处理等); 3)学习使用VC++编写Win32 Application 的方法。 4)学习MFC 类库的概念与结构; 5)学习使用VC++编写Win32 应用的方法(单文档、多文档、对话框); 6)学习使用MFC 的图形编程。 2、实验内容 1)使用WindowsAPI 编写一个简单的Win32 程序,调用绘图API 函数绘制若干图形。(可选任务) 2 )使用MFC AppWizard 建立一个SDI 程序,窗口内显示"Hello,This is my first SDI Application"。(必选任务) 3)利用MFC AppWizard(exe)建立一个SDI 程序,在文档视口内绘制基本图形(直线、圆、椭圆、矩形、多边形、曲线、圆弧、椭圆弧、填充、文字等),练习图形属性的编程(修改线型、线宽、颜色、填充样式、文字样式等)。定义图形数据结构Point\Line\Circle 等保存一些简单图形数据(在文档类中),并在视图类OnDraw 中绘制。 3、实验过程

1)使用MFC AppWizard(exe)建立一个SDI 程序,选择单文档; 2)在View类的OnDraw()函数中添加图形绘制代码,说出字符串“Hello,This is my first SDI Application”,另外实现各种颜色、各种边框的线、圆、方形、多边形以及圆弧的绘制; 3)在类视图中添加图形数据point_pp,pp_circle的类,保存简单图形数据,通过在OnDraw()函数中调用,实现线、圆的绘制。 4、实验结果 正确地在指定位置显示了"Hello,This is my first SDI Application"字符串,成功绘制了圆,椭圆,方形,多边形以及曲线圆弧、椭圆弧,同时按指定属性改绘了圆、方形和直线。成功地完成了实验。 结果截图: 5、实验体会 通过实验一,了解了如用使用基本的SDI编程函数绘制简单的图

《计算机图形学》实验报告

实验报告模板 《计算机图形学》实验报告 一、实验目的及要求 1.实习三维图形的坐标系之间的变换; 2.三维图形几何变换; 3.掌握三维图形的坐标系之间的变换算法及三维图形几何变换的原理和实现;4.实现二维图形的基本变换(平移、旋转、缩放、错切、对称、复合等);5.实现三维图形的基本变换(平移、旋转、缩放、复合等); 二、理论基础 在齐次坐标理论下,二维图形几何变换矩阵可用下式表示: ? ? ? ? ? ? ? = = = i f c h e b g d a T n k x x k k 2,1,0 , ) ( ? 平移变换:[x* y* 1] =[x y 1] * 00 00 001 t s ?? ? ? ? ??=[t*x s*y 1] 比例变换:[x* y* 1]=[x y 1] * 100 010 1 m n ?? ? ? ? ??=[m+x n+y 1] 旋转变换:在平面上的二维图形饶原点逆时针旋转?角,变换矩阵为 [x* y* 1]=[x y 1] * cos sin0 sin cos0 001 θθ θθ ?? ? - ? ? ??= [x*cos?-y*sin?] 复合变换:以上各种变换矩阵都是以原点为参照点,当以任意参照点进行变换的时候,我们就要用到复合变换矩阵。 三维变换类似于二维,在画图时,把三维坐标转换为二维即可。 三、算法设计与分析 二维变换: #define dx 50 #define dy 100 void CCGWithVCView::OnTransScale() //平移(50,100) { // TODO: Add your command handler code here // AfxMessageBox(_T("Please Insert The Move Change Code!")) ; int m[4][2]={{100,50},{50,100},{150,100},{100,50}}; int i; int a[2],b[2];

南昌大学- -计算机图形学实验报告

南昌大学实验报告 计算机图形学实验 学生姓名: 学号: 6100 专业班级:计科112班 教学老师:徐老师

目录 一、实验一直线和圆 (1) 二、实验二填充算法 (5) 三、实验三裁剪算法 (7) 四、实验四曲线的绘制(Bezier) (11) 五、实验五曲线的绘制(B样条) (14)

南昌大学实验报告一学生姓名:学号:6100 专业班级:计科112 班 实验类型:□验证■综合□设计□创新实验日期:实验成绩:一.实验名称 直线和圆 二.实验目的 1、掌握中点画圆算法 2、熟悉曲线的整数加减来计算沿圆周的像素位置 三.实验内容 1、使用中点画圆算法,熟悉算法的内容和原理。 2、通过改变参数值设定背景色和圆的大小 四.实验结果 如图2-1.画直线算法

如图2-2.中点画圆算法 五.程序源码: //Line.cpp #include void init(void) { glClearColor(1.0,1.0,1.0,0.0) ; glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150. 0); } void lineSegment(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0,0.0,0.0); glBegin(GL_LINES); glVertex2i(180,15); glVertex2i(10,145); glEnd(); glFlush(); } void main(int argc,char**argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SING LE|GLUT_RGB); glutInitWindowPosition(50,100 ); glutInitWindowSize(400,300); glutCreateWindow("Line"); init(); glutDisplayFunc(lineSegment); glutMainLoop(); } `#include void init(void) { glClearColor(1.0,1.0,1.0,0.0); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.

计算机图形学实验报告

计算机图形学 实验报告 实验一:二维线画图元的生成 实验目的:掌握直线段的生成算法,并用C/WIN-TC/VC++实现算法,包括中点法生成直线,微分数值法生成直线段等。 实验内容:用不同的方法生成斜率不同的直线段,比较各种方法的效果。 Bresenham 算法的思想 Bresenham 画法与中点法相似,都是通过每列象素中确定与理想直线最近的像素来进行直线的扫描的转换的。通过各行、各列的象素中心构造一组虚拟网格线的交点,然后确定该列象素中与此交点最近的像素。该算法的巧妙之处在于可以采用增量计算,使得对于每一列,只需要检查一个误差项的符号,就可以确定该列的所有对象。 1.1方法一:直线的中点算法 算法的主要思想: 讨论斜率k ∈[1,+∞)上的直线段的中点算法。 对直线01p p ,左下方的端点为0p (x0,y0),右上方的端点为1p (x1,y1)。直线段的方程为: y m x B =+ ?y y x B x y y x x B x ?= +??=?+?? (,)0F x y xy yx xB ?=?-?-?= 现在假定已求得像素(,,i r i x y ),则如图得

,,11(,]22 i i r i r x x x ∈- + 由于直线的斜率k ∈[1,+∞),故m=1/k ∈(0,1],则 1,,13(,]22i i r i r x x x +∈-+ 在直线1i y y =+上,区间,,13 (,]22i r i r x x -+内存在两个像素NE 和E 。根据取整原则,当 11(,)i i x y ++在中点M 11 (,)2 i i x y ++右方时,取像素NE ,否则取像素E ,即 ,11,,1()()01()()0 i r i i r i r i x E F M x x x NE F M x +++? ?≤=? +?>?i i 点当(,y +1)在左方时点当(,y +1)在右方时 若取2()i d F M =,则上式变为 ,1,,()01(0 i r i i r i r i x E d x x NE d +? ≤=? +>?点当点)当 计算i d 的递推公式如下: ,1 1,12[(2)()]012 2(,2)0 122[(2)(1)] 2 i i r i i i i i i i r x y y x xB d d F x y d x y y x xB ++? ?+-?+-??≤?=++=? >??+-?++-??? =202() i i i i d x d d x y d +?≤?? +?-?>? 算法的初始条件为: 00,00,0(,)(0,0)1 2(,1)22 r r x y x y d F x y x y =? ? ?=++=?-??? 相应的程序示例: 建立成员函数: void MidPointLine4(CDC*pDC,int x0,int y0,int x1,int y1,int color) { /*假定x01*/ int dx,dy,incrE,incrNE,d,x,y; dx=x1-x0; dy=y1-y0; d=2*dx-dy; incrE=2*dx; incrNE=2*(dx-dy); x=x0;y=y0; pDC->SetPixel(x,y,color); while (x

计算机图形学实验报告及代码

计算机图形学实验报告及代码 第 1 章概述 一、教学目标 通过本章的学习,使学生能够了解计算机图形学的基本概念、研究内容;当前的发展概况;本门课程的特点和应用。 二、教学要求 1.了解计算机图形学的概念和研究内容; 2.了解本门课程的发展概况。 三、教学内容提要 1. 计算机图形学的研究内容 2. 计算机图形学发展概况 3. 计算机图形学特点和应用 4. 计算机图形学当前研究的课题 5. 计算机图形生成和输出的流水线 四、教学重点、难点及解决方法 本章将主要围绕计算机图形学的基本概念进行介绍,介绍研究内容;当前的发展概况;本门课程的特点和应用等等。 五、课时安排 2学时 六、教学设备 多媒体 七、检测教学目标实现程度的具体措施和要求 通过课堂提问的方式来检测学生对基本概念的掌握程度。 八、教学内容 1.1 计算机图形学的研究内容 计算机图形学(Computer Graphics): 研究通过计算机将数据转换为图形,并在专用显示设备上显示的原理、方法和技术的学科。 计算机图形表现形式 (1).线条式(线框架图)

用线段来表现图形,容易反映客观实体的内部结构,如各类工程技术中结构图的表示,机械设计中零件结构图及电路设计中的电路原理图等。具有面模型、色彩、浓淡和明暗层次效应,适合表现客观实体的外形或外貌,如汽车、飞机、轮船等的外形设计以及各种艺术品造型设计等。 (2).真实感面模型图形 跑车靓照 计算机图形分类(空间) (1).二维图形(2D):在平面坐标系中定义的图形 (2).三维图形(3D):在三维坐标系中定义的图形 计算机图形产生方法 (1).矢量法(短折线法) 任何形状的曲线都用许多首尾相连的短直线(矢量)逼近。 (2).描点法(像素点串接法) 每一曲线都是由一定大小的像素点组成 计算机绘图方式: (1)交互式绘图 允许操作者以某种方式(对话方式或命令方式)来控制和操纵图形生成过程,使得图形可以边生成、边显示、边修改,直至符合要求为止。如AUTOCAD等 (2)被动式绘图 图形在生成过程中,操作者无法对图形进行操作和控制。如C语言绘图 图形的操作与处理方法(Picture Manipulation) 如图形的开窗、裁剪、平移、旋转、放大、缩小、投影等各种几何变换操作的方法及其 软件或硬件实现技术。 图形信息的存储,检索与交换技术:如图形信息的各种表示方法、组织形式、存取技术、图形数据库的管理、图形信息通信等。 人机交互及用户接口技术:如新型定位设备、选择设备的研究;

计算机图形学实验报告

计算机图形学实验报告 计算机图形学实验报告 引言 计算机图形学是研究计算机生成和处理图像的学科,它在现代科技和娱乐产业中扮演着重要的角色。本实验报告旨在总结和分享我在计算机图形学实验中的经验和收获。 一、实验背景 计算机图形学实验是计算机科学与技术专业的一门重要课程,通过实践操作和编程,学生可以深入了解图形学的基本原理和算法。本次实验主要涉及三维图形的建模、渲染和动画。 二、实验内容 1. 三维图形建模 在实验中,我们学习了三维图形的表示和建模方法。通过使用OpenGL或其他图形库,我们可以创建基本的几何体,如立方体、球体和圆柱体,并进行变换操作,如平移、旋转和缩放。这些基本操作为后续的图形处理和渲染打下了基础。 2. 光照和着色 光照和着色是图形学中重要的概念。我们学习了不同的光照模型,如环境光、漫反射和镜面反射,并了解了如何在三维场景中模拟光照效果。通过设置材质属性和光源参数,我们可以实现逼真的光照效果,使物体看起来更加真实。3. 纹理映射 纹理映射是一种将二维图像映射到三维物体表面的技术。通过将纹理图像与物

体的顶点坐标相对应,我们可以实现更加细致的渲染效果。在实验中,我们学 习了纹理坐标的计算和纹理映射的应用,使物体表面呈现出具有纹理和细节的 效果。 4. 动画和交互 动画和交互是计算机图形学的重要应用领域。在实验中,我们学习了基本的动 画原理和算法,如关键帧动画和插值技术。通过设置动画参数和交互控制,我 们可以实现物体的平滑移动和变形效果,提升用户体验。 三、实验过程 在实验过程中,我们首先熟悉了图形库的使用和基本的编程技巧。然后,我们 按照实验指导书的要求,逐步完成了三维图形建模、光照和着色、纹理映射以 及动画和交互等任务。在实验过程中,我们遇到了许多挑战和问题,但通过不 断的尝试和调试,最终成功实现了预期的效果。 四、实验结果 通过实验,我们成功实现了三维图形的建模、渲染和动画效果。我们可以通过 键盘和鼠标控制物体的移动和变形,同时观察到真实的光照效果和纹理映射效果。实验结果符合预期,并且在实验报告中附上了实验截图和代码片段供参考。 五、实验总结 通过本次计算机图形学实验,我深入了解了三维图形的建模和渲染原理,掌握 了OpenGL等图形库的使用方法。同时,我也学会了如何应用光照、纹理映射 和动画等技术,使图形更加真实和生动。通过实验,我不仅提升了编程能力, 还培养了团队合作和问题解决的能力。 六、展望未来

计算机图形学报告

沈阳航空航天大学 计算机图形学实验报告 班级:34140102学号:20130 姓名:成绩: 指导教师: 实验一:OpenGL绘制球体线框图 1.实验目的: 本实验要求熟悉OpenGL基本图元函数的使用。 通过使用OpenGL及GLUT库在Visual C++环境下编写图形绘制程序掌握图形绘制的一般框架,从而为进一步做综合性的图形绘制实验奠定基础 2.实验要求: 编写一个程序,在窗口中显示一个旋转的球体线框,利用光标键可启动图形旋转切换视点。 3.实验过程: 先配置环境,把相关文件放到相应的文件夹 C:\Program Files\Microsoft Visual Studio\VC98\Include\GL C:\WINDOWS\system32 C:\Program Files\Microsoft Visual Studio\VC98\Lib 建一个新工程,比照pdf敲代码 再通过VC++进行编译

4.实验结果: 程序运行后,弹出窗口,使用光标键可使球体旋转。 代码:include #include #include #include #include void init(); void CALLBACK reshapae(GLsizei w,GLsizei h); void CALLBACK display(); GLfloat s, h; //回调函数,绘制窗口时调用 void CALLBACK display() { //清空窗口设置背景为白色 glClearColor(1, 1, 1, 1); glClear(GL_COLOR_BUFFER_BIT);

计算机图形学报告

. . . . . . . 优质资料 . . 计算机图形学 (2017年秋季学期) 实 验 报 告 系别:计算机科学与技术 班级: : 学号: 实验名称:2-真实感图形绘制

2020-11-13 2/3 《计算机图形学》实验报告 实验名称 真实感图形绘制 实验序号 2 实验日期 2017.12.13 实验人 一、实验目的、要求与环境 1.目的:通过实验,学生应掌握通过计算机程序进行真实感图形绘制的基本原理,特别是对三维显示对象进行纹理映射的基本方法,将理论和实际应用切实结合起来。 2.要求:对一个三维立方体进行旋转,对其6个不同的面进行6个不同图像的纹理映射,并进行投影变换与显示,分析增强后的视觉效果,提交实验报告。 3.环境:Windows 7操作系统 Microsoft Visual Studio 2005 OpenGL 函数库 4. 自带位图文件(换成你自己的图像文件): 总成绩: 评语: 日期:

2020-11-13 11/12 二、实验容与步骤 1. 准备相关图像文件。 2. 进行立方体各面图像与旋转速度的大体设计。 3.在Windows 7 操作系统上,打开Microsoft Visual Studio 2005,编写相关程序,完成程序主体框架结构。 4.编写六面体显示相关的程序代码。 5.编写六面体旋转相关的程序代码。 6.编写深度检测相关的程序代码。 7. 编写纹理载入功能的相关程序代码。 8. 编写纹理参数定义功能的相关程序代码。 9. 编写纹理映射功能的相关程序代码。 10.对程序进行相关调试,修改程序,去除其中的BUG 。 11. 观察纹理映射后的六面体的旋转显示,与预想的结果进行对比,修改相关程序参数。 12.截屏,保留实验结果,进行实验结果分析,并撰写实验报告。

计算机图形学-实验五直线和多边形的裁剪

大学实验报告 学院:计算机科学与信息学院专业:软件工程班级:102班 ** 实验组实验时间指导教师成绩实验工程名称实验五直线和多边形的裁剪 实 验 目 的 掌握直线段的裁剪算法以及多边形的裁剪算法 实 验要求熟练掌握直线段的裁剪算法以及多边形的裁剪算法的根本原理,并编写测试代码进展实验。 实验原理 Cohen-Sutherland直线剪裁算法 以区域编码为根底,将窗口及其周围的,8个方向以4 bit的二进制数进展编码。 右图所示的编码方法将窗口及其邻域 分为5个区域: ⑴域:区域(0000)。 ⑵上域:区域(1001, 1000, 1010)。 ⑶下域:区域(0101, 0100, 0110)。 ⑷左域:区域(1001, 0001, 0101)。 ⑸右域:区域(1010, 0010, 0110)。 当线段的两个端点的编码的逻辑"与〞非零时,线段为显然不可见的,对*线段的两个端点的区号进展位与运算,可知这两个端点是否同在视区的上、下、左、右; Cohen-Sutherland直线剪裁算法的算法思想是: 对于每条线段P1P2分为三种情况处理。〔1〕假设P1P2完全在窗口,则显示该线段P1P2简称"取〞之。〔2〕假设P1P2明显在窗口外,则丢弃该线段,简称"弃〞之。〔3〕假设线段既不满足"取〞的条件,也不满足"弃〞的条件,则在交点处把线段分为两段。其

while (code1 != 0 || code2 != 0) { if ((code1 & code2) != 0) {// 两端点的编码相与不为0,表示直线在窗口外return; } if (code1 != 0) { code = code1; } else { code = code2; } if ((LEFT & code) != 0) {// 直线的端点与矩形窗口的左边编码相与!=0 * = *L; y = y1 + (y2 - y1) * (*L - *1) / (*2 - *1);// 求直线与矩形窗口的左边界的交点 } elseif ((RIGHT & code) != 0) {// 直线的端点与矩形窗口的右边编码相与!=0 * = *R; y = y1 + (y2 - y1) * (*R - *1) / (*2 - *1);// 求直线与矩形窗口的右边界的交点 } elseif ((BOTTOM & code) != 0) {// 直线的端点与矩形窗口的下边编码相与!=0 y = YB; * = *1 + (*2 - *1) * (YB - y1) / (y2 - y1);// 求直线与矩形窗口的下边界的交点 } elseif ((TOP & code) != 0) {// 直线的端点与矩形窗口的上边编码相与!=0 y = YT; * = *1 + (*2 - *1) * (YT - y1) / (y2 - y1);// 直线的端点与矩形窗口的上

计算机图形学实验报告

计算机图形学实验报告 引言 计算机图形学是计算机科学中一个重要的研究领域,它涉及了计算机图像的生成、处理和显示等方面的技术。本次实验旨在通过实际操作学习计算机图形学的相关知识,并利用图形学算法实现一些有趣的效果。 实验目的 1. 了解计算机图形学的基本概念和发展历程; 2. 掌握图形学中的基本几何变换,如平移、旋转和缩放等; 3. 实现一些常见的图形学算法,如光照模型、三角形剪裁和绘制等。 实验准备 在开始实验之前,我们需要准备一些实验所需的工具和环境。首先,确保计算机上安装了图形学相关的软件,如OpenGL或

DirectX等。其次,为了编写和运行图形学程序,我们需要掌握基 本的编程技巧,如C++或Python语言,并了解相关的图形库和API。 实验过程 1. 实现平移、旋转和缩放 首先,我们需要掌握图形学中的基本几何变换,如平移、旋转 和缩放。通过矩阵运算,我们可以很方便地实现这些变换。例如,对于一个二维点P(x, y),我们可以通过以下公式实现平移: P' = T * P 其中,P'是平移后的点,T是平移矩阵。类似地,我们可以用 旋转矩阵和缩放矩阵来实现旋转和缩放效果。 2. 实现光照模型

光照模型是指在计算机图形学中模拟现实光照效果的一种方法。它可以提供更真实的视觉效果,让计算机生成的图像更加逼真。 其中,常用的光照模型有环境光照、漫反射光照和镜面光照等。 通过计算每个像素的光照强度,我们可以实现阴影效果和光源反 射等功能。 3. 实现三角形剪裁 三角形剪裁是计算机图形学中一种常用的几何算法,用于确定 哪些像素需要绘制,哪些像素需要剔除。通过对三角形的边界和 视口进行比较,我们可以快速计算出剪裁后的三角形顶点,以提 高图形渲染的效率。 4. 实现图形绘制 图形绘制是计算机图形学中的核心内容,它包括了点、线和面 的绘制等。通过设定顶点坐标和属性(如颜色、纹理等),我们 可以使用算法绘制出各种形状的图像。其中,常用的绘制算法有Bresenham算法和扫描线算法等。

计算机图形学实验报告

实验报告 一、实验目的 1、掌握有序边表算法填充多边形区域; 2、理解多边形填充算法的意义; 3、增强C语言编程能力。 二、算法原理介绍 根据多边形内部点的连续性知:一条扫描线与多边形的交点中,入点和出点之间所有点都是多边形的内部点。所以,对所有的扫描线填充入点到出点之间所有的点就可填充多边形。 判断扫描线上的点是否在多边形之内,对于一条扫描线,多边形的扫描转换过程可以分为四个步骤: (1)求交:计算扫描线与多边形各边的交点; (2)排序:把所有交点按x值递增顺序排序; (3)配对:第一个与第二个,第三个与第四个等等;每对交点代表扫描线与多边形的一个相交区间; (4)着色:把相交区间内的象素置成多边形颜色,把相交区间外的象素置成背景色。 p1,p3,p4,p5属于局部极值点,要把他们两次存入交点表中。如扫描线y=7上的交点中,有交点(2,7,13),按常规方法填充不正确,而要把顶点(7,7)两次存入交点表中(2,7,7,13)。p2,p6为非极值点,则不用如上处理。

为了提高效率,在处理一条扫描线时,仅对与它相交的多边形的边进行求交运算。把与当前扫描线相交的边称为活性边,并把它们按与扫描线交点x坐标递增的顺序存放在一个链表中,称此链表为活性边表(AET)。 对每一条扫描线都建立一个与它相交的多边形的活性边表(AET)。每个AET的一个节点代表一条活性边,它包含三项内容 1.x -当前扫描线与这条边交点的x坐标; 2.Δx -该边与当前扫描线交点到下一条扫描线交点的x增量; 3.ymax -该边最高顶点相交的扫描线号。 每条扫描线的活性边表中的活性边节点按照各活性边与扫描线交点的x值递增排序连接在一起。 当扫描线y移动到下一条扫描线y = y+1时,活性边表需要更新,即删去不与新扫 描线相交的多边形边,同时增加与新扫描线相交的多边形边,并根据增量法重新计算扫描线与各边的交点x。 当多边形新边表ET构成后,按下列步骤进行: ①对每一条扫描线i,初始化ET表的表头指针ET[i]; ②将ymax = i的边放入ET[i]中; ③使y =多边形最低的扫描线号; ④初始化活性边表AET为空; ⑤循环,直到AET和ET为空。 ●将新边表ET中对应y值的新边节点插入到AET表。 ●遍历AET表,将两两配对的交点之间填充给定颜色值。 ●遍历AET表,将 ymax= y的边节点从AET表中删除,并将ymax> y的各 边节点的x值递增Δx;并重新排序。 ●y增加1。 三、程序源代码 #include "graphics.h" #define WINDOW_HEIGHT 480 #define NULL 0 #include "alloc.h" #include "stdio.h" #include "dos.h" #include "conio.h"

计算机图形学实验报告

《计算机图形学》 实验报告 学号:0908610211 姓名:宋雪英 班级:计算机0961 项目: 1.利用其它两种画直线方法实现放大10陪显示方法,交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。 2.利用方形、线性两种画刷来绘制圆和椭圆。 3.实现交互式二维图形的放缩,旋转和对称变换 2012年12月25日

基本图形的生成技术 一、实验目的 在一个图形系统中,基本图形(也称为图元、图素等)的生成技术是最基本的,任何复杂的图形都是由基本图形组成的,基本图形生成的质量直接影响该图形系统绘图的质量。所以,需要设计出精确的基本图形生成算法,以确保图形系统绘图的精确性。本次实验的目的就是利用Bresenham 算法和中心画线法两种画直线方法实现放大10陪显示方法,交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。利用方形、线性两种画刷来绘制圆和椭圆。实现交互式二维图形的放缩,旋转和对称变换。 二、实验任务 1.利用其它两种画直线方法实现放大10陪显示方法,交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。 2.利用方形、线性两种画刷来绘制圆和椭圆。 3.实现交互式二维图形的放缩,旋转和对称变换。 三、画直线的实验内容 任务一:利用其它两种画直线方法实现放大10陪显示方法交互式画直线,预先定义直线段的起止端点,每点击一次鼠标左键,画出直线上的一点,直到终点为止。 1、设计思路 第一步:建立DDAMouseLine工程文件; 第二步:向视图类中添加自定义的成员变量 用鼠标右键单击视图类,选择“Add Member Variable…”,添加下面三个成员变量。 proctected : CPoint m_p1; //起点 CPoint m_p2; //起点 CPoint m_p; //点击鼠标时点的取值 第三步:向视图类中添加自定义的成员函数原型:

计算机图形学上机实验报告

北京工业大学计算机图形学上机实验报告 11070426 范元

多边形的填充 一、实验要求 用户输入顶点坐标序列,要求使用扫描线算法。 多边形顶点:(150,150,(190.200),(300,170),(1170,300)。 二、实验内容 1.根据多边形顶点坐标值,计算扫描线的最大值ScanMax和最小值ScanMin。 2.用多边形覆盖的扫描线动态建立桶结点。 3.循环多边形的所有顶点,根据边的终点y 值比起点y值高或边的终点y值比起点y值低两种情况(边的终点y值和起点y值相等的情况属于扫描线,不予考虑),计算每条边的yMin。在桶中寻找与该yMin 相应的桶结点,计算该边表的x|yMin、yMax、k(代表斜率倒数1/k),并依次连接该边表结点到桶结点。 4.对每个桶结点连接的边表,根据x|yMin值的大小进行排序,若 x|yMin相等,则按照k 由小到大排序。 5.对每个桶结点进行循环,将桶内每个结点的边表合并为有效边表,并进行有效边表循环。6.从有效边表中取出相邻两条边的交点对进行填充。填充时设置一个逻辑变量In(初始值为假),每访问一个结点,把In值取反一次,若In为真,则把从当前结点的x值开始到下一结点的x-1值结束的区间用指定颜色填充。(左闭右开) 7.循环下一桶结点,按照 xi+1=xi+k(k的值为1/k)修改有效边表,同时合并桶结点内的新边表,形成新的有效边表。 8.如果桶结点的扫描线值大于等于有效边表中某个结点的yMax值,则放弃该有效边表。9.当桶结点不为空则转5,否则删除桶结点和边结点的头结点,算法结束。 三、实验结果

四、实验体会 通过学习计算机图形学中的有效边表填充算法,进一步了解了扫描线算法的核心思想,并通过有效边表填充算法完成了实现。并且实现了了有效边表填充算法中的各种思想。加深了对计算机图形学的理解和对知识的掌握。 五、源程序 由于使用的是MFC工程,其中关于头文件以及边表的定义等不再具体给出。仅给出有效边表填充算法的部分。 void CTestView::PolygonFill()//多边形填充 { HeadE=NULL; for(CurrentB=HeadB;CurrentB!=NULL;CurrentB=CurrentB->next)//访问所有桶结点 { for(CurrentE=CurrentB->p;CurrentE!=NULL;CurrentE=CurrentE->next)//访问桶中排序前的边结点 { AET *TempEdge=new AET; TempEdge->x=CurrentE->x; TempEdge->yMax=CurrentE->yMax; TempEdge->k=CurrentE->k; TempEdge->next=NULL; AddEdge(TempEdge);//将该边插入临时Aet表 } EdgeOrder();//使得边表按照x递增的顺序存放 T1=HeadE;//根据ymax抛弃扫描完的边结点 if(T1==NULL) { return; }

计算机图形学实验报告

华北电力大学科技学院 实验报告| | 实验名称 OpenGL基本图元绘制实验 课程名称计算机图形学 | | 专业班级:学生姓名: 学号:成绩: 指导教师:姜丽梅实验日期:

二、所用仪器、设备 Windows 系统,Visual C++,OpenGL及GLUT库 三、实验方法与步骤 先配置环境 C:\Program Files\Microsoft Visual Studio\VC98\Include\GL C:\WINDOWS\system32 C:\Program Files\Microsoft Visual Studio\VC98\Lib 然后通过VC++进行编译,源代码如: 四:源代码 实验一: #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) #include #include #define DEG_TO_RAD 0.017453 static GLfloat theta = 0.0; GLfloat r = 1.0; //设置三角形的初始颜色 GLfloat g = 0.0; GLfloat b = 0.0; int singleb,doubleb; void display(void) { glClear(GL_COLOR_BUFFER_BIT);//三角形换色 glColor3f(r, g,b); r = r - 0.002; g = g + 0.002; b = b + 0.001; if(r < 0.001) { r = 1.0; g = 0.0; b = 0.0; } glBegin(GL_POLYGON); glVertex2f(cos(DEG_TO_RAD*theta), sin(DEG_TO_RAD*theta)); glVertex2f(cos(DEG_TO_RAD*(theta+120)), sin(DEG_TO_RAD*(theta+120))); glVertex2f(cos(DEG_TO_RAD*(theta+240)), sin(DEG_TO_RAD*(theta+240))); glEnd(); glutSwapBuffers(); } void spinDisplay (void)//转动 { theta = theta + 1.0; if (theta > 360.0)

哈工大计算机图形学Flash实验报告

H a r b i n I n s t i t u t e o f T e c h n o l o g y 课程研究报告 课程名称:计算机图形学 报告类型: Flash动画设计报告设计题目:基于Flash的动画设计所在院系:软件学院 所在学科:软件工程 学生类别:研究生 指导教师:苏小红 学生姓名: 学生学号: 选课时间: 2016年秋季学期 教师批阅成绩: 哈尔滨工业大学

一、软硬件环境 本程序运行在Windows7下,主要设计工具为Adobe Flash CS6,辅助设计工具为Adobe Photoshop CS6。查看计算机属性得到软硬件环境:处理器为Intel Core i5-3210M CPU 2.50GHz,内存4GB,64位操作系统。其中Flash版本为12.0.0.0,官方下载地址为https://www.sodocs.net/doc/bb19135011.html,/support/flash/downloads.html#flashCS6。 二、设计内容和设计思路 动画的背景音乐来自于英国歌手詹姆斯·布朗特《不安于室》专辑中的You Are Beautiful。詹姆斯·布朗特这首歌曲是写给其前女友迪希·崔西的,迪希·崔西和新任男友在一起的消息令詹姆斯·布朗特十分伤心。一次,詹姆斯·布朗特与女友相见,两人只是眼神对视了一下,之后两人再也没有见过面。那一次的对视让

的邂逅:男生在地铁站偶遇了一位纯真动人的女生,然而女生已经名花有主,虽然仅仅是匆匆一瞥,但女生的形象已在男生心中留下了难以磨灭的痕迹,只可惜有缘无分,只能“虽不能至,心向往之”,这是对“一见倾心”的浪漫书写。詹姆斯·布朗特通过这首歌曲简单的结构有效地向人们传达了现实的痛苦、不能与心爱的人在一起的痛苦。这首歌曲令人心碎却动人耐听。像是记录着难以忘情、怦然心动的情感小品。You Are Beautiful把爱情世界里的偶然、巧合与失落表达得十分动人。 在整个Flash制作过程中,我根据每句歌词的含义设计出场景,参考时间轴,让场景与歌词对应起来。除了女生的服装外,其他部分均采用了较为灰暗的颜色,为了突显出女生这个人物,同时奠定了整体较为伤感的基调。 前奏吉他声出现,男生独自走在地铁站中,经过一扇又一扇地铁窗,男生在门前停下,歌手唱道“My life is brilliant”,虽然歌中唱的是生活美好,但画面中只有男生孤独的背影。地铁飞驰而过,男生朝左右张望,发现了一位漂亮的女生,女生的微笑犹如一束阳光照进男生的心里。刹那间,人流、地铁和内心的寂寞都不复存在,仿佛只有男生女生两人站在竹林间的栈道上,清风徐来,鸟语花香,五彩的蝴蝶围绕着女生飞舞。但是女生身边的男朋友很快把男生从想象世界拉回现实,男生意识到女生已经名花有主,自己不能前去搭讪,与女生也只是一面之缘,无法在一起。最终女生的男朋友牵着女生离开,男生依旧独自一人站在地铁门前,黯然神伤。 三、动画制作的步骤 1.确立主题 动画讲述了一个男生对一个女生一见钟情但发现女生已名花有主的故事。 2.搜集素材 主要人物包括:男生、女生和女生的男朋友,主要场景是地铁站,次要场景是一片竹林。根据人物和场景,我在网上找到了相关图片。 3.用Photoshop进行图片处理 ①女生:女生的动作包括侧身看、回头看、与男朋友牵手行走等。我 将网络上下载的.jpg图片的白色背景用魔术橡皮擦工具擦除,使图片 背景变为透明,把图片另存为.png格式,女生图片主要包括以下几 张:

计算机图形学实验报告-OpenGL基本使用

学生实验实习报告册 学年学期:2016-2017学年 春□√秋学期 课程名称:大学计算机基础 学生学院:通信与信息工程学院 专业班级: 学生学号: 学生姓名: 联系电话: 重庆邮电大学教务处印制

实验实习名OpenGL基本使用 指导教师秦红星考核成绩 课程名称计算机图形学A 课程编号 实验实习地点信息科技大厦S306 完成日期 学生姓名学生学号 学院专业广电与数字媒体类所在班级 教师评语 教师签名: 年月日 一、实验实习目的及要求 目的: 认识了解OpenGL的性质、功能 要求: 1.利用OpenGL绘制一个简单的场景:比如球体、正方体 2.加入灯光 3.实现交互操作:平移、缩放、旋转 二、实验实习设备(环境)及要求(软硬件条件) 采用Microsoft Visual C 2010生成环境并用C++编写程序 三、实验实习内容与步骤 内容: 背景为黑色,在点光源下,能够实现平移、缩放、旋转的球。 步骤: 建立立体-->添加光照-->添加变换 1.先写“主函数”,在主函数中将窗口生成好。 2.在“自定义函数1”中对窗口进行清除、填色等操作。 3.在“自定义函数1”中设置点光源,设置光照的各种参数。 4.在“自定义函数1”中设置平移、缩放、旋转及各参数。 5.在“自定义函数2”中设置平移和缩放的循环。 6.在主函数中调用这两个自定义函数,并且在主函数里面用“自定义函数1”为参数调用glutDisplayFunc()来注册一个绘图函数。其次用空闲回调函数glutIdleFunc()来使球体不停地循环有缩放、平移功能的函数。实现动画。 四、实验实习过程或算法(源程序、代码) #include

计算机图形学matlab实验报告

姓名:_刘奔__________ 学号: 20124223 学院: 理学院 专业班级: 地理信息系统一班 论文标题: 计算机图形学实验报告 2014年6月25日

Matlab绘图实验 一、实验目的: 1、掌握MATLAB的基本绘图函数。 2、掌握绘图函数的用法、简单图形标注、简单颜色设定。 二、实验要求: 独立进行实验,完成实验报告。 三、实验内容: 1、MATLAB简介:MATLAB语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。 2、MATLAB的绘图功能: (1)二维绘图: A、plot——最基本的二维图形指令:1. 单窗口单 曲线绘图;2. 单窗口多曲线绘图;3. 单窗口多曲线分图绘图;4. 多窗口绘图;5.可任意设置颜色与线型;6.图形加注功能;7.fplot——绘制函数

图函数;8.ezplot ——符号函数的简易绘图函数 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)给图的x 和y 轴添加标注。 2、在[-2*pi,pi]区间以0.1的间隔绘制5cos(x.^2+1)的曲线。 3、编辑M 文件,实现函数4xexp (-(x.^2+y.^2))的各种图形,包括三维线性图、网眼图、曲面图,并对他们分别加图题和标注坐标轴 4、编辑M 文件,实现函数 22() (,)(cos6cos6) x y f x y e x y -+=+

相关主题