- 5 -
20、边标志填充算法是用什么作为标志?如何实施填充的? 边标志填充算法利用边界色作为标志来进行填充。
当扫描线从左到右扫描时碰到边界色,立刻改变标志的状态,再根据标志的状态决定某象素点是否填充。
21、将扫描线种子填充算法由实面积填充改为图案填充,则要改变哪些代码? 改动代码为:
(1) 原程序的画点函数putpixel()改为图案填充函数maskpixel(); (2) 加上maskpixel()函数代码;
(3) 原程序中所有对象素值的判断语句除了对前景色的判断外再加上对背景色backgroundcolor的判断。
22、我国西文字符采用什么编码?中文字符又采用什么编码? 西文字符采用ASCII码;
中文字符采用中华人民共和国国家标准信息交换编码,代号为“GB2312-80”。 23、在计算机内部西文字符和中文字符的机内码分别用几个字节表示,如何编码? 西文字符的机内码用一个字节表示,最高位置0;西文字符的机内码就是ASCII码。 中文字符的机内码用两个字节: 第一字节 = A0+区码的十六进制表示 第二字节 = A0+位码的十六进制表示
24、点阵字符是如何存储的?
点阵字符是由位图表示,保存字符就是保存位图。即点阵字符就是按行或按列进行存储的。 25、矢量字符是如何存储的?
矢量字符保存的是字符的笔画信息而不是整个位图,每一笔画的信息又由其两端点坐标和端点间是否连线的标志组成。
26、矢量字符的优点是什么?
矢量字符存储的是笔画信息,所以存储容量小;另外变换时,是对笔画的两端点进行坐标变换,因此变换速度快,变换效果好,当进行放大变换时,不会出现点阵字符那样的锯齿状。
第三章 二维图形的裁剪
- 6 -
1、什么叫裁剪?
裁剪就是将指定窗口作为图形边界,将窗口内的图形保留,而窗口外的图形则被舍弃的过程。 2、某点(x,y)在窗口内的充分必要条件是什么?
如果裁剪窗口的左下角坐标为(xmin,ymin),右上角坐标为(xmax,ymax),某点(x,y)在窗口内的充分必要条件是: xmin≤x≤xmax ymin≤y≤ymax
如果上面四个不等式中任何一个不满足,则(x,y)点位于窗口之外。 3、当线段P1P2穿过某边界L时,交点P见图中所示,请推出直线求交公式。
根据直线两点式方程:
整理后得通用交点公式:
与左边界的求交公式:
与右边界的求交公式:
- 7 -
4、已知窗口左下角坐标(50,50),右上角坐标(400,400),直线的端点坐标P1(40,100)和P2(500,420),试用Cohen-Sutherland直线编码裁剪算法,结合编码图示,求出P1和P2所在区域的分区代码C1和C2。 C1为0001; C2为1010。
5、当线段与窗口边界有交点时,如果线段的长度为1024,用中点分割算法求交点的次数是多少? 10次。
6、多边形裁剪和直线裁剪不同的地方在哪里?
(1)多边形裁剪后的结果仍应该是封闭的多边形,而不是一些孤立的线段;
(2)裁剪后的多边形仍应保留原多边形各边的连接顺序并加入一些新顶点(交点、窗口顶点)和删除界外顶点;
(3)一个凹多边形裁剪后,可能分裂为几个多边形。 7、Sutherland-Hodgeman多边形裁剪的裁剪规则是什么?
在用窗口一条边界及其延长线裁剪一个多边形时,该边界及其延长线把平面分成两个部分:一部分包含窗口,称为窗口内侧;另一部分称为窗口外侧。依序考虑多边形各条边的两端点S、P(箭头表示顺序关系,S为前一点,P为当前点)。它们与裁剪线的位置关系只有四种情况: (1)S在外侧,P在内侧。则交点Q、当前点P保存到新多边形中。 (2)S、P均在内侧,则当前点P保存到新多边形中。 (3)S在内侧,P在外侧。则交点Q保存到新多边形中。 (4)S、P均在外侧。则没有点被保存到新多边形中。 8、为什么Sutherland-Hodgman算法叫逐边裁剪算法?
因为该算法对多边形进行裁剪时,每次只对窗口的一条边界及其延长线进行裁剪。 如果窗口有n个边界,该算法就要调用n次。
每次裁剪中,上次裁剪的结果多边形就是下次裁剪时的被裁剪多边形。
9、Weiler-Atherton多边形裁剪算法与Sutherland-Hodgeman算法相比有哪些特点? (1)Sutherland-Hodgeman算法解决了裁剪窗口为凸多边形区域的问题,但一些应用需要涉及任意多边形窗口的裁剪。而Weiler-Atherton多边形裁剪算法可以实现裁剪窗口、被裁剪多边形是任意多边形:凸的、凹的(内角大于180o)、甚至是带有内环的(子区)。 (2)可实现被裁剪多边形相对裁剪窗口的内裁或外裁,即保留窗口内的图形或保留窗口外的图形,因此在三维消隐中可以用来解决物体表面间的相互遮挡关系。 (3)裁剪思想新颖,方法简洁,裁剪一次完成,与裁剪窗口的边数无关。
- 8 -
10、字符的裁剪有几种策略? (1)基于字符串的裁剪策略。 (2)基于字符的裁剪策略。
(3)基于构成字符的最小元素的裁剪策略。
第四章 交互技术
1、在图形系统中,人是如何与计算机进行交互的?
在图形系统中,用户可以利用鼠标、键盘、数字化仪、扫描仪等输入设备对图形数据进行输入、定位、拖动、拾取、修改和拷贝,来进行各种交互操作。 2、常用的物理输入设备有哪些?
常用的物理输入设备有:键盘、鼠标、跟踪球、操纵杆、数字化仪、光笔、扫描仪、触摸屏等。
3、鼠标是一种用来定位屏幕光标的图形输入设备,你知道它是绝对定位设备还是相对定位设备?
由于鼠标检测到的是相对当前位置的运动方向和距离,因此它是一种相对坐标定位设备。 4、数字化仪用作定位设备时,它是绝对定位设备还是相对定位设备? 数字化仪是绝对坐标定位设备。 5、为什么要引入逻辑输入设备的概念?
图形系统使用逻辑输入设备的概念来减少系统对物理设备的依赖性,提高系统的独立性和灵活性。
6、有哪几种逻辑输入设备?
有六种逻辑输入设备:定位设备、笔划设备、字符串设备、定值设备、选择设备、拾取设备。 7、哪些物理输入设备可以用来作为逻辑定值设备使用?
键盘上的数字键可以用来作为逻辑定值设备,用户按照指定的格式键入数值即可。 通过在图形显示器上显示出标尺、刻度盘、滑杆、按钮等辅助工具,数字化仪、鼠标、操纵杆等定位设备也可以被用来实现逻辑定值设备的功能。 8、在应用程序和输入设备之间,常用的输入方式有哪些?
常用的输入方式是:请求(Request)、采样(Sample)和事件(Event)。 9、在请求方式下,应用程序和输入设备之间是如何工作的?
请求方式下,程序发出从某设备输入数据的请求,接着便等待用户输入数据,得到“允许从该设备输入”的回答后再将数据读入。这完全类似在高级语言中用读(read/scanf)命令从键盘上获得数据。在这种方式中,应用程序和数据输入是交替工作的,如果要求进行数据输入时,用户不进行输入,则整个程序被挂起。所以在要求输入时应对用户显示提示信息。字符或数据输入时往往采用这种方式。
10、常用的交互技术有哪些?
常用的交互技术有:对话框技术、橡皮筋技术、约束技术、网格技术、引力场技术、拖动技术、操作柄技术、菜单技术等。
11、对话框技术可以解决哪些问题?