哈工大计算机图形学实验报告.docx
文本预览下载声明
哈尔滨工业大学计算机图形学实验报告第一次实验一、实验基本信息实验题目多边形生成算法实验实验时间实验地点实验目的掌握VC作图的基本方法实践与巩固直线的基本生成算法了解画直线的基本思想掌握画直线的基本步骤实验内容使用中点画线算法或Bresenham画线算法实现线的绘制完成封闭多边形的绘制实验的算法基础直线斜率在0~1之间时,X方向增量为1,Y方向可为0或1线段两端点(x0,y0),(x1,y1),需要判断距离理想直线最近的下一个像素点,F(x,y)=ax+by+c=0;构造判别式:d=F(M)=F(Xp+1,Yp+0.5)若d≥0,中点M在直线上方,取正右方像素P1 (Xp+1,Yp),再下一个象素的判别式增量为a; 若d0,中点M在直线下方,取右上方像素P2 (Xp+1,Yp+1),再下一个象素的判别式增量为a+ba=y0-y1;b=x1-x0;c=x0y1-x1y0;初值为d=a+0.5b,用2d代替其他象限及斜率可以用对称变换完成预期的实验结果1、可以完成任意斜率的直线绘制2、可以绘制封闭的多边形二、实验过程及结果1.斜率0~1的直线绘制使用教材中提供的算法过程实现,即可2.对于斜率大于1的直线,将x,y变换对调即可3.多边形的封闭实现:保存所有点信息,连接相邻点及首尾两点即可第二次实验一、实验基本信息实验题目多边形填充算法实验实验时间实验地点实验目的1.了解多边形扫描转换的各种算法,掌握多边形的扫描转换与区域填充算法2.进一步掌握集成环境实现图形算法的方法与过程实验内容使用有序边表、随机种子等一种算法实现多边形的区域填充实验中选用边界表示的四联通区域种子填充算法实验的算法基础在封闭多边形内选取一点开始,种子像素入栈当栈非空时,重复以下步骤:栈顶像素出栈将出栈像素置成填充色按左下右上的顺序,检查与出栈像素相邻的四个像素点,若其中某像素不在边界上且未置成填充色,则将其入栈,并重复执行步骤二,直到堆栈为空即可预期的实验结果1、可填充封闭的凹多边形2、可填充封闭的凸多边形二、实验过程及结果记录种子像素的坐标,利用循环完成遍历填充的过程,直至栈为空第三次实验一、实验基本信息实验题目二维图形的图形变换实验实验时间实验地点实验目的使用算法完成图形变换相关实现加深对齐次坐标变换的理解实验内容1、验证图形对称算法,包含X轴对称、Y轴对称、原点对称2、验证图形的平移和旋转算法3、验证图形的缩放算法实验的算法基础1、所有非原点相关的变换均可利用齐次方程通过坐标变换实现点的移动,之后变为在原点的相关变换2、对称相关需要对坐标的单个值或两个值进行取相反数的变换即可3、平移仅需进行坐标值的增加或减少即可;旋转根据绕原点旋转的方法变换后移动至原位置即可4、缩放也先进行变换回原点,然后进行坐标的缩放运算即可预期的实验结果能完成图形的坐标轴对称变换完成图形的缩放变换完成图形的平移、旋转变换二、实验过程及结果对称变换:对图形的每个坐标值进行单独的x值取反;单独的y值取反;x,y同时取反平移变换:对图形的每个坐标进行x值增;y值增;缩放旋转变换:坐标值乘以变换系数即可获得变换后的图形第四次实验一、实验基本信息实验题目直线段裁剪算法实验实验时间实验地点实验目的熟悉图形裁剪的基础知识掌握Cohen-Sutherland直线裁剪算法实验内容1、绘制裁剪矩形2、实现直线段的裁剪实验的算法基础1、由窗口四条边所在直线把二维平面分成9个区域,每个区域赋予一个四位编码,CtCbCrCl(上下右左)2、3、第一步:判别线段两端点是否都落在窗口内,如果是, 则线段完全可见;否则进入第二步;第二步:判别线段是否为显然不可见,如果是,则裁剪结束;否则进行第三步 ;第三步:求线段与窗口边延长线的交点,这个交点将线段分为两段,其中一段显然不可见,丢弃。对余下的另一段重新进行第一步,第二步判断,直至结束预期的实验结果绘制裁剪窗口矩形可对完全可见、完全不可见、部分可见直线进行正确的切割二、实验过程及结果1.利用之前的绘制封闭多边形算法绘制裁剪矩形窗口2.对坐标点进行编码,进行直线可见性判断,裁剪画线完全可见:部分可见:第五次实验一、实验基本信息实验题目简单动画实验实验时间实验地点实验目的了解动画的基本原理及实现方法学会制作简单的动画实验内容1、制作一简单动画,自定义动画规则实验的算法基础1、使用常用动画制作软件,实现简单动画预期的实验结果1、动起来的图像,简单的栅栏波纹动态效果二、实验过程及结果使用cannas绘图实现,点击打开即可运行查看
显示全部