资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
绪论1 点阵法和参数法的概念。图形、图像的概念。点阵法 是用具有颜色信息的点阵来表示图形的一种方法,它强调图形由哪些点组成,并具有什么灰度或色彩。 参数法 是以计算机中所记录图形的形状参数与属性参数来表示图形的一种方法。通常把参数法描述的图形叫做图形(Graphics)把点阵法描述的图形叫做图象(Image)2 计算机图形学的概念?计算机图形学是研究怎样用计算机表示、生成、处理和显示图形的一门学科。3 图形包括哪两方面的要素,试举例说明。图形包括两方面的要素,其中有几何要素和非几何要素1. 几何要素:点,线,面,体等; 2. 非几何要素:明暗,灰度,色彩等4 一个交互性的图形系统具有哪些功能?5 个功能:输入功能、存储功能、计算功能、输出功能和交互功能5 图形输出设备包括什么?常用的图形绘制设备有哪两种? 图形输出设备包括图形显示设备和图形绘制设备,常用的图形绘制设备有打印机和绘图仪。6 与计算机图形学相关的学科有哪些?各自研究的内容是什么?计算机视觉:研究用计算机来模拟生物外显或宏观视觉功能的科学和技术图像处理:对图象进行各种加工以改善图象的视觉效果C 语言程序基础(课件中 p17, p55-59,常用画图函数)1 已知画“王”的 C 语言程序(如下) ,要求改编一个画 “田”字的程序,该字的字高和字宽均为 50,字的左上角点坐标为(60, 80) 。#include graphics.h#include conio.hmain()int gdriver=DETECT,gmode; int x,y; initgraph( /*初始化图形系统 */cleardevice(); /*清除图形屏幕*/moveto(100,40); /*绝对移动光标 */linerel(40,0); /*从当前位置按增量方式画线 */x=getx(); y=gety();moveto(x,y+20); linerel(-40,0);moverel(0,20); /* 以增量方式移动当前光标*/linerel(40,0);moverel(-20,0); linerel(0,-40);getch();closegraph(); /*关闭图形系统,返回文本模式*/2 画一个填充颜色的圆(画一个填充颜色的矩形,已知矩形的左下角(0,20) ,右上角坐标为(100,120) ) ,圆心坐标(60,60) ,半径 100,要求背景色为 1 号色(blue) ,圆的边界色为红色, 填充色为 Green, (函数: circle floodfill)#include graphics.h#include conio.hmain()int gdriver=DETECT,gmode;initgraph(setbkcolor(1); /*设置背景色,蓝色*/setcolor(4); /*设置前景色,红色*/circle(100,100,80); /*圆心 100,100,半径为 80*/setfillstyle(SLASH_FILL,2); /*用粗斜杠填充和填充绿色*/floodfill(100,100,4); /*填充一个封闭圆*,从圆心开始,边界用 4 号颜色红色进行填充/getch(); closegraph();setfillstyle(SOLID_FILL,GREEN); /*实填充,颜色为绿色 * /bar(100,100,150,200); setfillstyle(4,RED); /*用粗斜杠填充, 颜色为红色*/bar3d(200,100,250,200,10,1); /*三维条形的深度为 10,放置顶盖*/getch(); closegraph();3 画五颜六色的圆。其图形如图所示:程序如下:#include graphics.h#include conio.hmain()int i,start,end;int gd,gm;detectgraph(start=0;end=20;for(i=0;i=0, y 方向不前进,增量为 d1。改进的 Bresenham 算法算法步骤为:1.输入直线的两端点 P0(x0,y0)和 P1(x1,y1)。2.计算初始值x、y、e=-0.5、x=x0、y=y0。3.绘制点(x,y)。4.e 更新为 e+k,判断 e 的符号。若 e0,则(x,y)更新为(x+1,y+1),同时将 e 更新为 e-1;否则(x,y)更新为(x+1,y)。5.当直线没有画完时,重复步骤 3 和 4。否则结束。计算步骤:1)计算 x 的增量,y 的增量; 2)计算斜率 k; 3) e0=-0.5,e=e0+k, 4)若 e0,则(x,y)更新为(x+1,y+1),同时将 e 更新为 e-1;否则(x,y)更新为(x+1,y) 。例题:1 一条直线的两个端点是(0,0)和(10,6) ,计算 x 从 0 变到 6 时 y 所对应的值,并画出结果。 (DDA 算法)2 请指出用 Bresenham 算法扫描转换从像素点(0,0)到(8,5)的线段时的像素位置,并画图表示。圆的生成算法改进的 Bresenham 画圆算法1 输入圆的半径 R。2.计算初始值 d=1-R、x=0 、y=R 。3.绘制点(x,y)及其在八分圆中的另外七个对称点。4.判断 d 的符号。若 d0,则先将 d 更新为 d+2x+3,再将(x,y)更新为(x+1,y);否则先将 d 更新为 d+2(x-y)+5,再将(x,y)更新为(x+1,y-1)。5.当 xy 时,重复步骤 3 和 4。否则结束。 例题:利用中点 Bresenham 算法扫描转换圆心在 O(0,0), R 为 8 的圆 位于(0,R)至( )区间2,R图形裁剪1、 图形裁剪的概念,为什么要进行图形裁剪?图形裁剪的主要工作?(a.图形元素在窗口内外的判别;b.图形元素与窗口的交点。 )2、 已知窗口和点的坐标,要求写出点的区域编码例题:左下角 L(3,1) ,右上角为 R(2,6)的矩形窗口。请写出图中的线段端点的区域编码。解答:A(4,2)0001 B(1,7)1000C(1,5)0000 D(3,8)1010E(2,3)0000 F(1,2)0000G(1,2)0100 H(3,3)0010I(4,7)1001 J(2,0 )1000Xmin=-3 Xmax=2ymax=6ymin=1A(-4,2) F(1,2)E(-2,3)G(1,-2)H(3,3)C(-1,5)D(3,8)I(-4,2)J(-2,10)B(-1,7)xy3、 掌握 Cohen-Sutherland 直线裁剪算法裁剪一条线段时,先求出端点 p1 和 p2 的编码 code1 和 code2,然后:(1)若 code1|code2=0,对直线段应简取之。 (取位或运算)(2)若 code1&code20,对直线段可简弃之。 (取位与运算)(3)若上述两条件均不成立。则需求出直线段与窗口边界的交点。在交点处把线段一分为二,其中必有一段完全在窗口外,可以弃之。再对另一段重复进行上述处理,直到该线段完全被舍弃或者找到位于窗口内的一段线段为止。区域填充1 多边形的两种表示方法: 顶点法和点阵法2 多边形的扫描转换:多边形顶点表示转换为点阵表示3 扫描线填充的四个步骤?a.求交 b.排序 c.交点配对 d.区间填色4 交点的取舍问题:共享顶点的两条边在扫描线的同一边,计 2 次交点;若共享顶点的两条边分别落在扫描线的两边,计 1 次交点。改进的有效边表算法存在问题: 如何判断一条边开始进入下一条扫描线,以便将此边插入到活性边表中 如何判断扫描线何时离开一条边,以便及时从活性边表中将该边删除解决办法:1. 利用相邻扫描线之间的相关性,构造有效边表AET(Active Eges Table) ,表中只记录与当前扫描线相交的活动边,而且这些边按照与扫描线 y 交点的 x 坐标排序,以便交点匹配和填充。2. 先构造边表(ET) ,再构造活动边表 AET解决上述问题的具体措施是建立边表为什么图形会出现走样?什么是图形的发走样技术?常用的反走样方法有哪些?消隐的概念,为什么要进行消隐?消隐算法研究多边形之间的遮挡关系。消隐的结果与被观察的物体有关,也与视点的位置有关。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号