一、四向种子填充算法.doc
《计算机图形学》练习测试题

《计算机图形学》练习测试题库一.选择题1.实验表明,镜面反射系数W(θ)与物体类型和角度有关。
当角度θ在30到60度时,金、银玻璃三种物体的W(θ)值从小到大依次为( B )。
A 银、金、玻璃B 玻璃、银、金C 金、玻璃、银D 玻璃、金、银2.灰度等级为16级,分辨率为1024*1024的显示器,至少需要的帧缓存容量为( A )A 512KB;B 1MBC 2MB;D 3MB3.在面片的数量非常大的情况下哪一个消隐算法速度最快? ( C )A 深度缓存算法(Z-Buffer)B 扫描线消隐算法C 深度排序算法(画家算法)D 不知道4.双三次Bezier曲面的4条边界都是三次Bezier曲线,其特征网格有( C )个顶点。
A 9;B 12;C 16;D 205.下列有关平面几何投影的叙述,错误的是( C )A 透视投影又可分为一点透视、二点透视、三点透视;B 斜投影又可分为斜等测、斜二测;C 正轴测又可分为正一测、正二测、正三测;D 正视图又可分为主视图、侧视图、俯视图。
6.下面关于深度缓存消隐算法(Z-Buffer)的论断哪一条不正确? ( B )A 深度缓存算法并不需要开辟一个与图像大小相等的深度缓存数组B 深度缓存算法不能用于处理对透明物体的消隐C 深度缓存算法能并行实现D 深度缓存算法中没有对多边形进行排序7.用转角法判别点在区域的内外。
将疑点M与边界上一点P连接,当P沿边界移动一周时,M点处于区域外的是( A )A MP与给定的某条直线夹角变化值为0;B MP与给定的某条直线夹角变化值为2π;C MP与给定的某条直线夹角变化值为π;D MP与给定的某条直线夹角变化值为3π8. 在下列叙述语句中,不正确的论述为( C )A 在图形文件系统中,点、线、圆等图形元素通常都用其几何特征参数来描述;B 在图形系统中,图形处理运算的精度不取决于显示器的分辨率;C 在光栅扫描图形显示器中,所有图形都按矢量直接描绘显示,不存在任何处理;D 在彩色图形显示器中,使用RGB颜色模型。
《计算机图形学》练习测试题及参考答案

.《计算机图形学》测试题一、名词解释:(每个4分)1.计算机图形学2.图象处理3.模式识别4.计算几何5.凸多边形6.种子填充算法7.窗口8.视区9.光顺性10.拟合11.多项式插值12.小挠度曲线13.图形变换14.齐次坐标系15.凸包16.轮廓线17.等值线18.图形的翼边表示19.ER模型20.图形消隐21.本影22.半影23.用户坐标系24.规化设备坐标系25.构造26.约束技术27.光线跟踪28、走样29、CRT(Cathode Ray Tube)30、隔行(interlaced)扫描31、输入模式32、取样方式(sample mode)33、区域34、边界表示法35、复合变换36、二维复合平移37.二维复合比例38.二维复合旋转39.视区(Viewport)40、投影变换.41、平面几何投影42. 参数图43. 像素图44.人机界面45.地理信息系统46.虚拟现实47.几何造型技术48.扫描转换49. 插值曲线50.逼近曲线51. 用户接口52. 交互技术53. 交互式图形系统的基本交互任务54. 定位任务55. 选择任务56. 拾取任务57 .选择技术58. 菜单技术59. 文字输入任务60. 数值输入任务61.动画62.帧63.场64. 消隐65.物体空间的消隐算法66. 漫反射光67. 环境光68. 镜面反射光二、选择题(每题2分)1、计算机图形学与计算几何之间的关系是( )。
A)学术上的同义词 B)计算机图形学以计算几何为理论基础C)计算几何是计算机图形学的前身D).两门毫不相干的学科2、计算机图形学与计算机图象学的关系是( )。
A)计算机图形学是基础,计算机图象学是其发展B)不同的学科,研究对象和数学基础都不同,但它们之间也有可转换部分C)同一学科在不同场合的不同称呼而已D)完全不同的学科,两者毫不相干3、触摸屏是( )设备。
A)输入 B)输出 C)输入输出D)既不是输入也不是输出4.计算机绘图设备一般使用什么颜色模型?( )A)RGB;B)CMY;C)HSV ;D)HLS5. 计算机图形显示器一般使用什么颜色模型?( )A)RGB;B)CMY;C)HSV ;D)HLS ../liyi计算机图形学网上教程TESTa.htm6.分辨率为1024×1024的显示器各需要多少字节位平面数为24的帧缓存?( ) A)512KB;B)1MB;C)2MB ;D)3MB ../liyi计算机图形学网上教程TESTc.htm7.哪一个不是国际标准化组织(ISO)批准的图形标准?( )A)GKS;B)PHIGS;C)CGM ;D)DXF ../liyi计算机图形学网上教程TESTd.htm8.下述绕坐标原点逆时针方向旋转a角的坐标变换矩阵中哪一项是错误的? ( )| A B || C D |A) cos a;B)sin a;C)sin a;D)cos a ../liyi计算机图形学网上教程TESTb.htm9、在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点S到端点P)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点.请问哪种情况下输出的顶点是错误的? ( )../liyi计算机图形学网上教程TESTa.htmA)S和P均在可见的一侧,则输出S和P.B)S和P均在不可见的一侧,则输出0个顶点.C)S在可见一侧,P在不可见一侧,则输出线段SP与裁剪线的交点.D)S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P.10、在物体的定义中对边的哪条限制不存在? ( )../liyi计算机图形学网上教程TESTc.htmA) 边的长度可度量且是有限的B) 一条边有且只有两个相邻的面C) 一条边有且只有两个端点D) 如果一条边是曲线,那么在两个端点之间不允许曲线自相交11.下述哪一条边不是非均匀有理B样条(NURBS)的优点? ( )../liyi计算机图形学网上教程TESTd.htmA) NURBS比均匀B样条能表示更多的曲面B) 对于间距不等的数据点,用NURBS拟合的曲线比用均匀B样条拟合的曲线更光滑C) NURBS提供的权控制方法比用控制点更能有效的控制曲线的形状D) 使用NURBS可以提高对曲面的显示效率12.下列关于图的存储表示的叙述中,哪一个是不正确的?A) 无向图的相邻矩阵是对称矩阵B) 对于带权的图,其相邻矩阵中值为1的元素,其值可以用边的权来权替C) 用邻接表法存储包括n个结点的图需要保存一个顺序存储的结点表和n个存储的边表D) 用邻接表法存储包括n条边的图需要保存一个顺序存储的结点表和n个存储的边表13*.在面片的数量非常大的情况下哪一个消隐算法速度最快? ( )A) 深度缓存算法(Z-Buffer)B) 扫描线消隐算法C) 深度排序算法(画家算法)D) 不知道../liyi计算机图形学网上教程TESTa.htm14*.下面关于深度缓存消隐算法(Z-Buffer)的论断哪一条不正确? ( )A) 深度缓存算法并不需要开辟一个与图像大小相等的深度缓存数组B) 深度缓存算法不能用于处理对透明物体的消隐C) 深度缓存算法能并行实现D) 深度缓存算法中没有对多边形进行排序../liyi计算机图形学网上教程TESTb.htm15.在用射线法进行点与多边形之间的包含性检测时,下述哪一个操作不正确? ( )../liyi计算机图形学网上教程TESTd.htmA) 当射线与多边形交于某顶点时且该点的两个邻边在射线的一侧时,计数0次B) 当射线与多边形交于某顶点时且该点的两个邻边在射线的一侧时,计数2次C) 当射线与多边形交于某顶点时且该点的两个邻边在射线的两侧时,计数1次D) 当射线与多边形的某边重合时,计数1次16*、扫描消隐算法在何处利用了连贯性(相关性Coherence)?(1)计算扫描线与边的交点;(2)计算多边形在其边界上的深度;(3)计算多边形视窗任意点处的深度值;(4)检测点与多边形之间的包含性。
卷积填充算法

卷积填充算法卷积填充算法是数字图像处理和机器学习中常用的一种技术,其主要作用是在卷积运算的过程中对图像进行填充,从而使卷积操作的输出大小和输入大小相同。
本文将详细介绍卷积填充算法的原理、应用和实现方法,以帮助读者更好地理解和运用该算法。
一、卷积填充算法的原理卷积运算在进行过程中会缩小图像的尺寸,这会导致在卷积层中出现有效像素的数量减少,从而导致特征图的尺寸缩小。
为了解决这个问题,我们可以对输入图像进行填充,使其大小与卷积核的大小相同,这样可以保持特征图的大小不变。
卷积填充算法的原理如下:1. 定义输入图像的大小和输出特征图的大小;2. 定义卷积核的大小和步长;3. 计算需要补充的像素数量,分别在图像的四周添加相应数量的像素;4. 执行卷积操作,将卷积核与图像进行卷积运算;5. 输出特征图。
卷积填充算法的主要作用是保持特征图的大小不变,同时在进行卷积运算的过程中可以将边缘信息也考虑在内。
通常情况下,我们会在图像的四周添加0或者中心值,这样可以使得计算更加稳定和高效。
二、卷积填充算法的应用卷积填充算法在数字图像处理和机器学习中有着非常广泛的应用,以下是其中的几个典型应用场景:1. 边缘检测与对象识别卷积填充算法在边缘检测和对象识别中都有着重要的应用。
在边缘检测中,我们可以通过对输入图像进行填充,保证卷积后的特征图与原图大小相同,从而能够更好地处理边缘信息。
而在对象识别中,卷积填充算法可以增加卷积层的感受野,在特征提取过程中更好地考虑对象边缘的信息。
2. 图像分割图像分割是数字图像处理中的一个非常重要的问题,其主要目的是将图像中的不同部分进行分离。
卷积填充算法在图像分割中可以用来避免边缘信息的丢失,从而可以更好地实现目标分割。
3. 数据增强数据增强是机器学习中用于提高模型泛化能力的一种方法,通常采用对输入数据进行旋转、翻转、透视变换等方式扩大数据集。
在使用卷积神经网络进行图像分类等任务时,卷积填充算法可以帮助我们生成更多具有多样性的图像。
计算机图形学总复习

第一章:(蓝色字体为部分答案)●计算机图形学的定义?计算机图形学是研究通过计算机将数据转换为图形,并在专门显示设备上显示的原理、方法和技术的学科。
●计算机图形学常见的应用领域有哪些?(应用领域的标题)●计算机图形学的相关学科有哪些?和计算机图形学互逆的学科是?●CRT中为什么需要刷新?刷新频率是什么?由于荧光物质存在余晖时间,为了让荧光物质保持一个稳定的亮度值,电子束必须不断的重复描绘出原来的图形,这个过程叫做刷新刷新频率:每秒钟重绘屏幕的次数(次/秒、HZ)●彩色CRT和单色CRT的区别:⏹在荧光屏的内表面安装一个影孔板,用于精确定位像素的位置⏹CRT屏幕内部涂有很多组呈三角形的荧光粉,每一组由三个荧光点,三色荧光点由红、绿、蓝三基色组成(一组荧光点对应一个像素)⏹三支电子枪, 分别与三基色相对应●光栅扫描显示器中帧缓存是什么?位面是什么?⏹存储用于刷新的图像信息。
也就是存储屏幕上像素的颜色值。
⏹帧缓存的单位是位面。
⏹光栅扫描显示器屏幕上有多少个像素,该显示器的帧缓存的每个位面就有多少个一位存储器●1024×1024像素组成的24位真彩色光栅扫描显示器所需要的最小帧缓存是多少?第二章●什么是CDC?在微软基类库MFC中,CDC类是定义设备上下文对象的基类,所有绘图函数都在CDC基类中定义。
⏹简述CDC的4个派生类的名称,以及作用CClientDC类:显示器客户区设备上下文类CClientDC只能在窗口的客户区(不包括边框、标题栏、菜单栏以及状态栏的空白区域)进行绘图CMetaFileDCCMetaFileDC封装了在一个Windows图元文件中绘图的方法CPaintDC类该类一般用在响应WM_PAINT消息的成员函数OnPaint()中使用CWindowDC类整个窗口区域的显示器设备上下文类,包括客户区和非客户区(即窗口的边框、标题栏、菜单栏以及状态栏)⏹什么是映射模式?映射模式定义了Windows如何将绘图函数中指定的逻辑坐标映射为设备坐标输出到显示器或者打印机上。
专升本《计算机图形学》-试卷-答案

专升本《计算机图形学》一、(共57题,共150分)1. 下列设备中属于图形输出设备的是( )①鼠标②LCD ③键盘④LED ⑤打印机⑥扫描仪⑦绘图仪⑧触摸屏(2分)A。
①③⑥⑧ B.②④⑤⑦ C.②⑤⑥⑦ D.④⑥⑦⑧标准答案:B2. 用正负法画圆,如果圆心在原点(0,0)处,初始点(0,R ),顺时针生成圆,若当前点Pi在圆外,则下一点Pi+1向左走一步,递推公式为( )。
(2分)A。
B 。
C.D.标准答案:D3。
在三维空间中点P(3, 5, 4)绕z轴旋转180o后的坐标为:( ) (2分)A。
(3, 4, 5) B.(—5,-3, 4) C.(5, 3, 4) D.(4, 4, 4)。
标准答案:B4。
4.在三维几何实体的表示法中,( )表示法的结果难以实现绘图输出。
(2分)A。
CSG法 B.八叉树表示法C.扫描表示法 D。
对称数据结构法。
标准答案:A5. 在种子填充算法中所提到的四向连通区域算法,()填充八向连通区。
(2分)A.可以B.不一定。
标准答案:B6. 下列()是用实型量计算,且每一步需对Y进行四舍五入。
(第一象限内,0£k£1的直线) (2分)A。
DDA算法 B。
Bresenham算法C.中点画线算法D.DDA算法和Bresenham算法标准答案:A7。
在齐次坐标中,最后一维坐标H称为()因子。
(2分)A。
比例 B.旋转 C.反射 D.斜切标准答案:A 8。
线模型的数据结构简单且易于实现,只要给出所有顶点坐标及线段与其顶点的关系即可。
(2分)A.颜色 B。
角度 C.平面 D。
顶点坐标。
标准答案:D9。
参数曲线的表示有代数形式()和两种。
(2分)A.几何形式B.分数 C。
阵列 D.固定形式标准答案:A10. 多边形填充时,下述哪个论述是错误的?()(2分)A。
多边形被两条扫描线分割成许多梯形,梯形的底边在扫描线上,腰在多边形的边上,并且相间排列;B。
多边形与某扫描线相交得到偶数个交点,这些交点间构成的线段分别在多边形内.外,并且相间排列;C。
《计算机图形学》试题-A卷及参考答案

7、对于由P 0 P 1 P 2 三点所决定的二次B样条曲线,下列叙述中错误的是( D )
A)起始点位于(P 0 +P 1 )/2 处; B)终止点位于(P 2 +P 1 )/2 处; C)若P 0 P 1 P 2 三点共线时,该曲线是一条线段; D)起始点的切矢为:2(P 1 -P 0 )。 8、下列不属于计算机图形学中三维形体表示模型的是:( C )。 A 线条模型 B 表面模型 C 粒子模型 D 实体模型
X(t)=3t 2 3 Y(t)=3t-9t +6t 2 3 Z(t)= 3t-9t +6t 将 t 分别等于 0,1/3, 2/3,1 代入上述参数曲线,得 P(0)=(0,0,0) P(1/3)=(1,2/9,2/9) P(1/2)=(3/2,0,0) P(2/3)=(2,-2/9,-2/9) P(1)=(3,0,0)
计算机图形学试题
一、选择题(20 分) 1、种子填充算法中,正确的叙述是( C ) A)按扫描线的顺序进行象素点的填充; B)四连接算法可以填充八连接区域;
A
C)四连接区域内的每一象素可以通过上下左右四个方向组合到达; D)八连接算法不能填充四连通区域。 2、在多边形的逐边裁剪法中,对于某条多边形的边(方向为从端点 S 到端点 P)与 某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点. 请问哪种情况下输出的顶点是错误的? ( A ) A) S 和 P 均在可见的一侧,则输出 S 和 P. B) S 和 P 均在不可见的一侧,则输出 0 个顶点. C) S 在可见一侧,P 在不可见一侧,则输出线段 SP 与裁剪线的交点. D) S 在不可见的一侧,P 在可见的一侧,则输出线段 SP 与裁剪线的交点和 P. 3、透视投影中主灭点最多可以有几个?( D ) A)0 B)1 C)2 D)3
河北工业大学大三软件专业数字图形设计考试试卷及参考答案1
河北工业大学数字图形设计考试试卷及参考答案1一、单项选择题(5’)1.在下列叙述语句中,正确的论述为()。
A、一个计算机图形系统至少应具有计算、存储、输入、输出四个方面的基本功能;B、在图形系统中,图形处理速度取决于CPU的性能;C、在图形系统中,存储容量指的是计算机的内存;D、在图形系统中,图形处理精度主要是指图形采集输入质量和显示输出质量。
答案:D2.电子束轰击荧光屏产生的亮点只能持续极短的时间,为了产生静态的不闪烁的图像,电子束必须周期性地反复扫描所要绘制的图形,这个过程称为()。
A、启动B、驱动C、刷新D、更新答案:C3.阴极射线管(CRT)的电子枪发射电子束,经过聚焦系统、加速电极、偏转系统,轰击到荧光屏的不同部位,被其内表面的荧光物质吸收,发光产生可见的()。
A、电子B、物质C、光线D、图形答案:D4.计算机显示设备一般使用的颜色模型是()。
A.LabB.HSVC.CMYKD.RGB答案:D5.下列有关二维几何变换的叙述语句中,正确的论述为()。
A.几何变换就是把一个图形从一个位置移到别的位置B.几何变换后图形连线次序发生改变C.一个正方体经几何变换后可能会变成长方体D.几何变换使图形都产生了变形答案:C6.常见的15英寸的屏幕显示器,640×480屏幕像素分辨率就相当于()ppi。
A.81B. 84C. 72D. 32答案:C7.分辨率(Resolution)是指在水平或竖直方向单位长度上能识别的最大()个数,单位通常为dpi(dots per inch)。
A、图像B、像素C、线D、点答案:B8.点是图形中不可再分的最小组成单位,它可以用平面直角坐标系中唯一的一对坐标值(X, Y)表示,也可以用一个()[X Y] 来表示。
A、点B、列表C、矩阵D、平面答案:C9.图形几何变换的基本方法是利用变换矩阵作用于()矢量,得到点的几何变换。
A、几何B、物理C、点D、线答案:C10.在透视投影中,主灭点的最多个数是()。
大学mooc计算机图形学章节测验期末考试答案
解忧书店 JieYouBookshop
青春须早为,岂能长少年。
第二讲测验
1
单选 (2 分)
种子填充算法中,正确的论述是 A.四连通算法的数据结构采用的是队列结构 B.四连通算法可以填充八连通区域 C.它是按扫描线的顺序进行像素点的填充 D.四连通区域内的每一象素可以通过上下左右四个方向组合到达
正确答案:A、B 你没选择任何选项
3
判断 (1 分)
使用齐次坐标可以将 n 维空间的一个点向量唯一的映射到 n+1 维空间中
©解忧书店,严禁转载,违者必究!
4 / 16
正确答案:×
青春须早为,岂能长少年。
第六讲测验
1
单选 (2 分)
透视投影中主灭点最多可以有几个? A.3 B.1 C.2 D.0
A 正确答案: 你没选择任何选项
正确答案:C、D 你没选择任何选项
2
多选 (2 分)
在区域分割(Warnack)消隐算法中,窗口与多边形的关系包括哪些? A.包围 B.内含 C.相交 D.分离
©解忧书店,严禁转载,违者必究!
3 / 16
正确答案:A、B、C、D 你错选为 D
青春须早为,岂能长少年。
第五讲测验
1
多选 (2 分) 下述对坐标系的描述哪些是正确的?
2
单选 (2 分)
有关平面几何投影的叙述,错误的是 A.斜投影又可分为斜等测、斜二测 B.正轴测又可分为正一测、正二测 C.透视投影又可分为一点透视、二点透视、三点透视 D.三视图又可分为主视图、侧视图、俯视图
B 正确答案: 你没选择任何选项
3
多选 (2 分)
在下列对投影的描述里,正确的论述为 A.太阳光线产生的投影为平行投影 B.物体经过透视投影后可产生缩放的效果 C.三视图属于透视投影 D.透视投影与平行投影相比,视觉效果更有真实感,而且能真实地反映物体的精确的尺 寸和形状
《计算机图形学》习题
一、名词解释计算机图形学、图形消隐、裁剪、走样、反走样、参数方程、曲线拟合、曲线插值、曲线的参数化、区域填充、扫描转换二、判断正误(正确写T,错误写F)1.存储颜色和亮度信息的相应存储器称为帧缓冲存储器,所存储的信息被称为位图。
2.光栅扫描显示器的屏幕分为m行扫描线,每行n个小点,整个屏幕分为m╳n个中点,其中每个小点称为一个像素。
3.点阵字符用一个位图来表示,位图中的0对应点亮的像素,用前景色绘制;位图中的1对应未点亮的像素,用背景色绘制。
4.矢量字符表示法用(曲)线段记录字形的边缘轮廓线。
5.将矢量字符旋转或放大时,显示的结果通常会变得粗糙难看,同样的变换不会改变点阵字符的显示效果。
6.在光栅图形中,区域是由相连的像素组成的集合,这些像素具有相同的属性值或者它们位于某边界线的内部。
7.多边形的扫描变换算法不需要预先定义区域内部或边界的像素值。
8.用DDA算法生成圆周或椭圆不需要用到三角运算,所以运算效率高。
9.找出并消除物体中的不可见部分,称为消隐。
10.经过消隐得到的图形称为消隐图。
11.深度缓存算法并不需要开辟一个与图像大小相等的深度缓存数组,深度缓存算法能并行实现,深度缓存算法中没有对多边形进行排序。
12.在种子填充算法中所提到的八向连通区域算法同时可填充四向连通区。
13.Bezier曲线不一定通过其特征多边形的各个顶点,Bezier曲线两端点处的切线方向必须与起特征折线集(多边形)的相应两端线段走向一致,Bezier曲线可用其特征多边形来定义。
14.由三个顶点可以决定一段二次B样条曲线,若三顶点共线时则所得到的曲线褪化为一条直线段。
15.插值得到的函数严格经过所给定的数据点。
16.参数曲线的表示有形式和几何形式两种。
17.L-B参数直线裁剪算法中的裁剪条件为uP k<=Q k,当直线平行于裁剪边界的条件Q k=0。
18.L-B参数直线裁剪算法中的裁剪条件为uP k<=Q k,当P k<0时表示线段从裁剪边界外部指向内部。
栅格数据向矢量数据转换的方法
栅格数据向矢量数据转换的方法栅格数据和矢量数据是地理空间数据的两种常见形式。
栅格数据由像素或网格单元组成,每个单元包含特定位置上的属性值,如高程、温度等。
矢量数据则由点、线、面等几何要素组成,每个要素都有特定的几何形状和属性信息。
栅格数据转换为矢量数据可以帮助我们更好地理解和分析地理空间信息。
本文将介绍栅格数据向矢量数据转换的几种方法。
一、栅格转点栅格数据转点是将栅格数据中的像素点转换为矢量数据中的点要素。
这种方法适用于栅格数据中每个像素点都代表了一个实际的地理位置,如遥感影像中的每个像素点代表了一个土地覆盖类型。
转换方法如下:1. 创建一个点要素图层;2. 遍历栅格数据中的每个像素点;3. 如果像素点的属性值满足条件(如土地覆盖类型为建筑物),则在点要素图层中创建一个对应的点要素,其坐标为该像素点的位置。
二、栅格转线栅格数据转线是将栅格数据中的连续像素转换为矢量数据中的线要素。
这种方法适用于栅格数据中的连续像素代表了某种线性特征,如河流、道路等。
转换方法如下:1. 创建一个线要素图层;2. 遍历栅格数据中的每个像素点;3. 如果像素点的属性值满足条件(如河流),则在线要素图层中创建一个新的线要素,并将该像素点的位置作为线的起点;4. 继续遍历相邻像素点,如果满足条件,则将其加入到当前线要素的几何形状中;5. 当遇到不满足条件的像素点时,结束当前线要素的创建,并将该线要素添加到线要素图层中。
三、栅格转面栅格数据转面是将栅格数据中的连续像素转换为矢量数据中的面要素。
这种方法适用于栅格数据中的连续像素代表了某种区域特征,如土地利用类型、行政区划等。
转换方法如下:1. 创建一个面要素图层;2. 遍历栅格数据中的每个像素点;3. 如果像素点的属性值满足条件(如森林),则在面要素图层中创建一个新的面要素,并将该像素点的位置作为面的起点;4. 使用种子填充算法或连通区域算法,将与起点相邻且满足条件的像素点逐步添加到当前面要素的几何形状中;5. 当遍历完所有像素点后,得到了多个面要素,每个面要素代表了一个连续的区域。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、四向种子填充算法
void BoundaryFill4(int x, int y, COLORREF fillClr, COLORREF edgeClr, CDC *pDC)
{
COLORREF cPixel;
cPixel=pDC->GetPixel(x, y);
if((cPixel !=edgeClr)&&(cPixel !=fillClr))
{
pDC->SetPixel(x,y,fillClr);
Sleep(0);
BoundaryFill4( x, y+1, fillClr,edgeClr,pDC);
BoundaryFill4( x, y-1, fillClr,edgeClr,pDC);
BoundaryFill4( x-1, y, fillClr,edgeClr,pDC);
BoundaryFill4( x+1, y, fillClr,edgeClr,pDC);
}
}
二、八向种子填充算法
void Scanline_seed_fill(CDC *pDC, int seedx, int seedy, COLORREF color, COLORREF fillcolor)
{
COLORREF clr;
int x,y,x0,y0,xl,xr,flag,xnextspan;
iStack=0;
x=seedx;
y=seedy;
y0=y;
push(x,y);
color=pDC->SetPixel(x,y,color);
while(iStack >0)
{
pop(x,y);
clr=pDC->SetPixel(x,y,fillcolor);
x0=x+1;
while(pDC->GetPixel(x0,y) !=color)
{
pDC->SetPixelV(x0,y,fillcolor);
x0++;
}
xr=x0-1; // 最右像素
x0=x-1;
while(pDC->GetPixel(x0,y) !=color)
{
pDC->SetPixelV(x0,y,fillcolor);
x0--;
}
xl=x0+1; // 最左像素
//
x0=xl;
y=y+1;
while(x0<=xr)
{
flag=0;
while(pDC->GetPixel(x0,y) !=color &&
pDC->GetPixel(x0,y) !=clr && x0<xr)
{
if(flag==0) flag=1;
x0++;
}
if(flag==1)
{
if(x0==xr && pDC->GetPixel(x0,y) !=color && pDC->GetPixel(x0,y) !=clr)
push(x0,y);
else
push(x0-1,y);
flag=0;
}
xnextspan=x0;
while(pDC->GetPixel(x0,y) ==color ||
pDC->GetPixel(x0,y) ==clr && x0<=xr)
x0++;
if(xnextspan==x0) x0++;
}
//
x0=xl;
y=y-2;
while(x0<=xr)
{
flag=0;
while(pDC->GetPixel(x0,y) !=color &&
pDC->GetPixel(x0,y) !=clr && x0<xr)
{
if(flag==0) flag=1;
x0++;
}
if(flag==1)
{
if(x0==xr && pDC->GetPixel(x0,y) !=color && pDC->GetPixel(x0,y) !=clr)
push(x0,y);
else
push(x0-1,y);
flag=0;
}
xnextspan=x0;
while(pDC->GetPixel(x0,y) ==color ||
pDC->GetPixel(x0,y) ==clr && x0<=xr)
x0++;
if(xnextspan==x0) x0++;
}
}
}
void push(int x, int y)
{
if(iStack>1000)
return;
else
{
iStack++;
stackX[iStack]=x;
stackY[iStack]=y;
}
}
int pop(int &x, int &y)
{
if(iStack<=0) return -1;
x=stackX[iStack];
y=stackY[iStack];
iStack--;
return iStack;
}。