图元属性及图形处理

上传人:dja****22 文档编号:240562936 上传时间:2024-04-15 格式:PPT 页数:37 大小:503.50KB
返回 下载 相关 举报
图元属性及图形处理_第1页
第1页 / 共37页
图元属性及图形处理_第2页
第2页 / 共37页
图元属性及图形处理_第3页
第3页 / 共37页
点击查看更多>>
资源描述
计算机图形学第6讲 图元属性及图形处理cad.1主要内容o图元属性:关键数据;颜色、点属性、线属性、曲线属性、填充属性、字符属性o图元的一般处理o填充算法o裁剪算法o反走样26.1 图元属性颜色o颜色与灰度颜色与灰度oRGB模式与索引模式模式与索引模式IndexoRGBA模式模式(alfa)3OpenGL颜色函数oglutInitDisplayMode(GLUT_SINGLE|GLUT_RGB)or GLUT_INDEXoRGBA模式模式 oIndex模式:模式:ovoid glClearColor*();ovoid glClearIndex(GLfloat cindex);ovoid glSecondaryColor*();ovoid glEnable(GL_BLEND)46.1 图元属性点属性o关键数据:点坐标o颜色和大小o样式(OpenGL不支持,可以自定义)void glPointSize(GLint size);56.1 图元属性线属性o关键数据:起点、终点坐标o颜色 glColor*()o线宽 glLineWidth(wid)o线型 glEnable(GL_LINE_STIPPLE)glLineStipple();o画笔和画刷:使用矩形笔画线,则画刷起作用(OpenGL未提供)66.1 图元属性曲线属性o关键数据o颜色o线宽o线型o精度(显示曲线的段数)oBezier曲线/NURBS曲线(后)76.1 图元属性填充属性o关键数据:实体集合o填充颜色o填充样式 glPolygonStipple(pattern)o填充区域 glBegin/glEndoglEnable(GL_POLYGON_STIPPLE)86.1 图元属性字符属性o颜色o字体o大小o位置、方向glTranslateglRotate96.2 图元的一般处理o属性改变:颜色、线型、宽度等;o关键数据改变:n图形变换:移动、旋转、放缩n复制操作:拷贝粘贴、镜像、阵列n关键点操作:拖动n裁剪与延伸n倒角与圆弧倒角n10光栅显示的重要特点是能进行面着色,区域填充就是在光栅显示的重要特点是能进行面着色,区域填充就是在一个闭合区域内填充某种颜色或图案。区域填充一般分一个闭合区域内填充某种颜色或图案。区域填充一般分两类:两类:多边形填充多边形填充和和种子填充种子填充。6.3 区域填充算法11多边形填充算法给定一顶点序列给定一顶点序列(Pi,i=0,1,n),依,依次连线构成一封闭多边形。次连线构成一封闭多边形。多边形内点判别 射线法若射线与多边形边界的交点个数为奇数时,若射线与多边形边界的交点个数为奇数时,则该点为则该点为内点内点;反之,交点个数为偶数时,;反之,交点个数为偶数时,则该点为则该点为外点外点。当扫描线过多边形顶点时,则交点为当扫描线过多边形顶点时,则交点为奇异点奇异点。奇异点为局部极值点应看成两点,若为非极奇异点为局部极值点应看成两点,若为非极值点应看成一点。值点应看成一点。12多边形填充算法多边形内点判别 夹角法夹角和为夹角和为0,点,点p为为外点外点;夹角和为;夹角和为360,点,点p为为内点内点CABDEPABCDEP13这类算法建立在多边形边边界的矢量形这类算法建立在多边形边边界的矢量形式数据之上,可用于程序填色,也可用式数据之上,可用于程序填色,也可用交互填色。交互填色。该算法基于几何求交算法,步骤如下:该算法基于几何求交算法,步骤如下:输入多边形顶点坐标;输入多边形顶点坐标;求多边形顶点中最大和最小求多边形顶点中最大和最小y坐标,以确定范坐标,以确定范围;围;计算每条扫描线起止点(交点),并扫描填充,计算每条扫描线起止点(交点),并扫描填充,直至所有扫描线处理完毕。直至所有扫描线处理完毕。1)扫描线填充算法思路)扫描线填充算法思路(Scan-Line Filling)算法步骤14扫描线填充算法改进边相关扫描线填充算法本算法改进的关键所在:本算法改进的关键所在:如何快速求扫描线与多边形交点;如何快速求扫描线与多边形交点;扫描线填充利用扫描线填充利用画水平直线快速画法画水平直线快速画法(为什么不为什么不用斜线?用斜线?);应该利用扫描线与多边形交点的连贯性加速求交应该利用扫描线与多边形交点的连贯性加速求交算法(多边形与扫描线相交,则与下一条扫描线算法(多边形与扫描线相交,则与下一条扫描线很可能相交,交点可直接计算)很可能相交,交点可直接计算)由于相邻扫描线上的交点是与多边形的边线由于相邻扫描线上的交点是与多边形的边线相关的。对同一条边,前一条扫描线相关的。对同一条边,前一条扫描线yi与该与该边的交点为边的交点为xi,而后一条扫描线,而后一条扫描线yi+1=yi+1与该与该边的交点则为边的交点则为xi+1=xi+1/m,利用相关性可省,利用相关性可省去大量求交运算去大量求交运算(算法详见图形学教材)。15这类算法建立在多边形边界的图象形式数据之上,并需提供多这类算法建立在多边形边界的图象形式数据之上,并需提供多边形界内一点的坐标,一般只能用于人机交互填色,而难以用边形界内一点的坐标,一般只能用于人机交互填色,而难以用于程序填色。于程序填色。从多边形从多边形内部点内部点出发,沿出发,沿四连通方向四连通方向(或(或八连通方向八连通方向)扩)扩散搜索区域内所有待填充的象素点,适用于交互绘图。散搜索区域内所有待填充的象素点,适用于交互绘图。算法思想:用用4连通填充算法的填充结果连通填充算法的填充结果用用8连通填充算法的填充结果连通填充算法的填充结果2 2)种子填色算法()种子填色算法(Seed FillingSeed Filling)16种子填色算法(见种子填色算法(见Test1.vcprj)给定多边形边界颜色及内部填充颜色;给定多边形边界颜色及内部填充颜色;从内部点从内部点(x,y)开始,检测该点与边界和填开始,检测该点与边界和填充色是否相同,均不相同则填充该点;充色是否相同,均不相同则填充该点;检测相邻点与边界和填充色是否相同,均不检测相邻点与边界和填充色是否相同,均不相同则填充该点;相同则填充该点;重复第重复第步直至所有象素点被填充。步直至所有象素点被填充。算法步骤:算法特点:直接基于象素,用递归算法,不必求交。但递归太多,存储不够,直接基于象素,用递归算法,不必求交。但递归太多,存储不够,易造成堆栈溢出。易造成堆栈溢出。(可用一个大的矩阵记录象素填充的状态来避免递归算法)(可用一个大的矩阵记录象素填充的状态来避免递归算法)17任意封闭区域的填充算法o边界实体集合生成o封闭性判断o若封闭:n得到边界实体集合的包容盒n坐标转换:世界坐标设备坐标n每条扫描线求交n根据交点显示扫描线183 3)图案填充算法(参考)图案填充算法(参考)实际应用中,有时需要用图案来填充平实际应用中,有时需要用图案来填充平面区域,只需将种子填充算法中写象素面区域,只需将种子填充算法中写象素的那部分代码修改的那部分代码修改。(。(种子点颜色改写种子点颜色改写为定义图案对应点颜色查表即可为定义图案对应点颜色查表即可)定义填充图案是一个定义填充图案是一个MN的位图,用数组存的位图,用数组存放。放。M、N常比需要填充区域尺寸小得多常比需要填充区域尺寸小得多(88、1616等),图案设计成周期性的,等),图案设计成周期性的,使之重复使用构成任意尺寸图案。使之重复使用构成任意尺寸图案。边界的处理?边界的处理?19图案填充算法图案填充算法图案定位方法 相对定位法:相对定位法:把图案原点与填充区域边界或内部的某点对齐把图案原点与填充区域边界或内部的某点对齐。当被填充的多边形移动时,图案也。当被填充的多边形移动时,图案也跟着移动,看起来比较自然。对于多边形,可取边界上最左边的顶点,对于圆和椭跟着移动,看起来比较自然。对于多边形,可取边界上最左边的顶点,对于圆和椭圆这样具有光滑边界的区域,最好取区域内部某一点,如取中心与图案原点对齐。圆这样具有光滑边界的区域,最好取区域内部某一点,如取中心与图案原点对齐。绝对定位法:绝对定位法:把图案原点与屏幕原点对齐。把图案原点与屏幕原点对齐。将整个屏幕看成被要填充的图案布满,只是要填充的区将整个屏幕看成被要填充的图案布满,只是要填充的区域是透明的,可以让图案显露出来,其它区域对此图案却是不透明的,图案被全部挡域是透明的,可以让图案显露出来,其它区域对此图案却是不透明的,图案被全部挡住。这种方法比较简单,并且在相邻区域用同一图案填充时,可以达到无缝连接的效住。这种方法比较简单,并且在相邻区域用同一图案填充时,可以达到无缝连接的效果。但它有一个潜在的毛病,即当区域移动时,图案不会跟着移动。其效果是区域内果。但它有一个潜在的毛病,即当区域移动时,图案不会跟着移动。其效果是区域内的图案变了。的图案变了。20任意区间的图案填充算法o前面同“实填充”o根据对齐方式确定包容盒内任意像素点处的颜色o根据交点信息确定哪些像素点显示21OpenGL中的填充oglBegin(GL_TRIANGLE/POLYGON/QUAD),等自动实现多边形填充o设置 glPolygonStipple(pattern)可实现图案填充,过程同字符绘制22包容盒定义包容盒定义 Bounding Box在计算机图形学、在计算机图形学、CAD、CAE中经常遇到相交(碰撞)测试。如鼠标拾取,视中经常遇到相交(碰撞)测试。如鼠标拾取,视窗裁剪、曲面求交、光线跟踪、布尔运算、装配干涉校验、动画漫游、运动碰窗裁剪、曲面求交、光线跟踪、布尔运算、装配干涉校验、动画漫游、运动碰撞、机器人与机床刀具的轨迹规划等。尤其对较大规模数据的模型而言,处理撞、机器人与机床刀具的轨迹规划等。尤其对较大规模数据的模型而言,处理相交(碰撞)测试的速度对系统效率影响很大。相交(碰撞)测试的速度对系统效率影响很大。为加速测试计算速度,通常采用包容盒方法。为加速测试计算速度,通常采用包容盒方法。1)相交(碰撞)测试算法)相交(碰撞)测试算法轴对齐包容盒(矩形盒):通常通常称称AABB,表面平行于坐标面。,表面平行于坐标面。有向包容盒:简称OBB,即任意方向的,即任意方向的AABB,往往由一个中心,三个,往往由一个中心,三个单位矢量和三个半边长定义。单位矢量和三个半边长定义。AABBAxis Align BBOBBOriented BBn3n1n2n4s1d1maxd1minKDOPK discrete oriented polytope多边形/多面体包容盒环包容盒球体包容盒6.4 多边形裁减算法23直线的包围盒,直线的包围盒,计算直接利用其特征点计算直接利用其特征点起始点和终点就可得到起始点和终点就可得到矩形的包围盒矩形的包围盒是其本身,是其本身,圆的包围盒圆的包围盒是该圆的边界矩形是该圆的边界矩形圆弧的包围盒圆弧的包围盒,主要是由圆弧的起始点和终止点,以及与通过圆心的主要是由圆弧的起始点和终止点,以及与通过圆心的4个坐个坐标轴相交的交点标轴相交的交点自由曲线的包容盒,自由曲线的包容盒,可根据离散的小直线段的起始点和终止点比较后获得,可根据离散的小直线段的起始点和终止点比较后获得,若精确求解并不经济,因图形显示采用离散多边形,且图形变换频繁若精确求解并不经济,因图形显示采用离散多边形,且图形变换频繁复杂组合图形的包容盒,复杂组合图形的包容盒,可以在简单图形的包容盒基础上进行比较得到可以在简单图形的包容盒基础上进行比较得到包容盒计算包容盒计算 AABB:直接比较所有多面体(前面的离散多面体)顶点坐标即可得:直接比较所有多面体(前面的离散多面体)顶点坐标即可得球体包容盒:球体包容盒:计算麻烦。较为简单的方法是先计算计算麻烦。较为简单的方法是先计算AABB,再计算,再计算AABB的的中心,以此为球心,球心到最远顶点的距离即为半径。其它更好更优的算法中心,以此为球心,球心到最远顶点的距离即为半径。其它更好更优的算法可查资料。可查资料。显然,最远距离两点最为球的直径是最优解,关键是快速显然,最远距离两点最为球的直径是最优解,关键是快速。OBB:计算方法较多,较繁琐。方法之一是:计算方法较多,较繁琐。方法之一是:1)计算凸包;)计算凸包;2)计算凸包)计算凸包质心;质心;3)计算协方差矩阵的特征向量;)计算协方差矩阵的特征向量;4)其其特征向量即为特征向量即为OBB三个方向三个方向;5)向三个方向投影向三个方向投影即可求出半长值。即可求出半长值。AABB、圆球包容盒比较粗糙,各有优势。、圆球包容盒比较粗糙,各有优势。KDOP 比比 AABB更紧致,更紧致,OBB 则较则较 kDOP 更优,选用何种包容盒视复杂度而定。更优,选用何种包容盒视复杂度而定。24相交测试相交测试 1)尽可能用最简单算法排除或确定相交情形,如采用包容盒排除;)尽可能用最简单算法排除或确定相交情形,如采用包容盒排除;2)充分利用前一次计算结果,尽量避免复杂计算(如)充分利用前一次计算结果,尽量避免复杂计算(如sin,开方等);,开方等);3)如果使用了多种测试,可以尝试改变内部顺序,或许会有意外收效;)如果使用了多种测试,可以尝试改变内部顺序,或许会有意外收效;4)尽量降低维数,使问题简化,确保计算鲁棒性。)尽量降低维数,使问题简化,确保计算鲁棒性。算法实现的基本原则:算法实现的基本原则:求交计算是求交计算是CG&CAD最常用算法,计算量大,其准确性与效率直接影响系统的可靠性与实用性。为最常用算法,计算量大,其准确性与效率直接影响系统的可靠性与实用性。为加速测试过程,减小计算量,算法应注意:加速测试过程,减小计算量,算法应注意:注意:在数学上两个浮点数可以严格相等,但计算机表示的浮点数有误差,难以绝对相等,相应地,注意:在数学上两个浮点数可以严格相等,但计算机表示的浮点数有误差,难以绝对相等,相应地,求交运算中要引进容差。求交运算中要引进容差。i)当两个点的坐标值充分接近时,即其距离充分近时,就被认为是)当两个点的坐标值充分接近时,即其距离充分近时,就被认为是重合的点重合的点,一般取,一般取=10-6或或更小的数。更小的数。ii)当两条直线的夹角)当两条直线的夹角 接近接近0度(一般取度(一般取 =10-6或更小)时,就被认为是或更小)时,就被认为是两条平行线两条平行线。iii)同样,)同样,共线、共面、平行面共线、共面、平行面等的判断也是近似的。等的判断也是近似的。252)多边形裁剪算法)多边形裁剪算法 确定图形中哪些部分落在显示区之内确定图形中哪些部分落在显示区之内,以便显示落在显示区内的那部以便显示落在显示区内的那部分图形。这个选择过程称为分图形。这个选择过程称为裁剪裁剪。只有窗口内的物体才能显示,窗。只有窗口内的物体才能显示,窗口之外的物体都是不可见的。口之外的物体都是不可见的。Sutherland-Hodgeman 多边形裁剪算法多边形裁剪算法I.每次用窗口的一条边界每次用窗口的一条边界(包括延长线包括延长线)对要裁剪的多边形进行裁剪,裁剪时,顺序地测试多边形各对要裁剪的多边形进行裁剪,裁剪时,顺序地测试多边形各顶点,保留边界内侧的顶点,删除外侧的顶点,同时,适时地插入新的顶点:即交点和窗口顶顶点,保留边界内侧的顶点,删除外侧的顶点,同时,适时地插入新的顶点:即交点和窗口顶点,从而得到一个新的多边形顶点序列。点,从而得到一个新的多边形顶点序列。II.然后以此新的顶点序列作为输入,相对第二条窗边界线进行裁剪,又得到一个更新的多边形顶然后以此新的顶点序列作为输入,相对第二条窗边界线进行裁剪,又得到一个更新的多边形顶点序列。点序列。III.依次下去,相对于第三条、第四条边界线进行裁剪,最后输出的多边形顶点序列即为所求的裁依次下去,相对于第三条、第四条边界线进行裁剪,最后输出的多边形顶点序列即为所求的裁剪好了的多边形,如下图所示。剪好了的多边形,如下图所示。(1)(2)(3)(4)26新的多边形顶点序列产生规则:在用窗口一条边界及其延长线裁剪一个多边形时,该边界线把平面新的多边形顶点序列产生规则:在用窗口一条边界及其延长线裁剪一个多边形时,该边界线把平面分成两个部分:分成两个部分:边界内侧和边界外侧。边界内侧和边界外侧。如下图所示,依序考虑多边形的各条边。假设当前处理的多边形的边为如下图所示,依序考虑多边形的各条边。假设当前处理的多边形的边为SP(箭头表示顺序关系,箭头表示顺序关系,S为为前一点,前一点,P为当前点为当前点),边,边SP与裁剪线的位置关系只有下面四种情况:与裁剪线的位置关系只有下面四种情况:1、S在外侧,在外侧,P在内侧。则交点在内侧。则交点Q、当前点、当前点P保存到新多边形中。保存到新多边形中。2、S、P均在内侧。则当前点均在内侧。则当前点P保存到新多边形中。保存到新多边形中。3、S在内侧,在内侧,P在外侧。则交点在外侧。则交点Q保存到新多边形中。保存到新多边形中。4、S、P均在外侧。则没有点被保存到新多边形中。均在外侧。则没有点被保存到新多边形中。算法思想(续):27上述算法中点在上述算法中点在边界内侧边界内侧的判断方法:的判断方法:为了判断为了判断pi点是否在边界内侧,可用点是否在边界内侧,可用坐标比较法坐标比较法和和向量叉积符号判别法向量叉积符号判别法。1)坐标比较法:将点的某个方向分量与边界进行比较。例如,判断某点是否在)坐标比较法:将点的某个方向分量与边界进行比较。例如,判断某点是否在下边界内侧下边界内侧,用条用条件判别式:件判别式:if(pi1=ymin)即可。对其它边界也一样。即可。对其它边界也一样。2)向量叉积法)向量叉积法 :为简单计,测试点表示为:为简单计,测试点表示为P点。假设窗口边界方向为顺时针,如图中所示,对于点。假设窗口边界方向为顺时针,如图中所示,对于其中任一边界向量,从向量起点其中任一边界向量,从向量起点A向终点向终点B看过去,如果被测试点看过去,如果被测试点P在该边界线右边在该边界线右边(即内侧即内侧),ABAP的方向与的方向与X-Y平面垂直并指向屏幕里面,即右手坐标系中平面垂直并指向屏幕里面,即右手坐标系中Z轴的负方向。轴的负方向。反过来,如果反过来,如果P在该边界线的左边在该边界线的左边(即外侧即外侧),这时,这时ABAP的方向与的方向与X-Y平面垂直并指向平面垂直并指向屏幕外面,即右手坐标系中屏幕外面,即右手坐标系中Z轴的正方向。轴的正方向。28SutherlandHodgeman多边形裁多边形裁剪算法特点剪算法特点 SutherlandHodgeman多边形裁剪算法具有一多边形裁剪算法具有一般性,被裁剪多边形可以是任意多边形,裁剪窗口不般性,被裁剪多边形可以是任意多边形,裁剪窗口不局限于矩形,可以是任意凸多边形。局限于矩形,可以是任意凸多边形。上面的算法是多边形相对窗口的一条边界进行裁上面的算法是多边形相对窗口的一条边界进行裁剪的实现,对于窗口的每一条边界依次调用该算法程剪的实现,对于窗口的每一条边界依次调用该算法程序,并将前一次裁剪的结果多边形作为下一次裁剪时序,并将前一次裁剪的结果多边形作为下一次裁剪时的被裁剪多边形,即可得到完整的多边形裁剪程序。的被裁剪多边形,即可得到完整的多边形裁剪程序。293)剖面线算法)剖面线算法(任意多边形裁减,(任意多边形裁减,同实填充算法同实填充算法)剖面线是一组等距的平行线,用填充算法速度慢,直接多边形裁减更快,算法步骤:剖面线是一组等距的平行线,用填充算法速度慢,直接多边形裁减更快,算法步骤:i)按多边形的初始条件及剖面线的角度和间距,计算剖面线的范围和数量;按多边形的初始条件及剖面线的角度和间距,计算剖面线的范围和数量;ii)求剖面线与轮廓边的相交位置;求剖面线与轮廓边的相交位置;iii)对剖面线上的交点进行排序,并按奇偶规则绘制有效剖面线段。)对剖面线上的交点进行排序,并按奇偶规则绘制有效剖面线段。简化技巧:简化技巧:1)跳过顶点处交点判断,避免奇异性判断跳过顶点处交点判断,避免奇异性判断 2)图形变换使剖面线成为水平线(或铅垂线),简化加图形变换使剖面线成为水平线(或铅垂线),简化加 速求交计算。速求交计算。30OpenGL中的裁剪o由窗口自动完成o包容盒的设置,每个OpenGL元实体可获得其包容盒,自定义实体需要指定其包容盒,否则影响实体的选择和ZoomAll操作oglClipPlane()用于三维裁剪,被裁剪掉的部分不显示,如剖视图31在光栅显示器上显示图形时,直线段或图形边界或多或少会呈锯齿状。原因是图形信号是连在光栅显示器上显示图形时,直线段或图形边界或多或少会呈锯齿状。原因是图形信号是连续的,而在光栅显示系统中,用来表示图形的却是一个个离散的象素。这种用离散量表示连续的,而在光栅显示系统中,用来表示图形的却是一个个离散的象素。这种用离散量表示连续量引起的失真现象称之为走样续量引起的失真现象称之为走样(aliasing);用于减少或消除这种效果的技术称为反走样;用于减少或消除这种效果的技术称为反走样(antialiasing)。图图(a)图图(b)图图(c)图形的走样6.5 图形的反走样 狭小图形遗失狭小图形遗失(如图如图(c),在动画,在动画序列中将时隐时现,产生闪烁)。序列中将时隐时现,产生闪烁)。图形细节失真图形细节失真(比象素更窄(比象素更窄的细节变宽,如图的细节变宽,如图(b)););阶梯状边界阶梯状边界,如图,如图(a)所示,画出的直所示,画出的直线边界实际上是阶梯状;线边界实际上是阶梯状;32图形反走样o图形走样的原因因为计算机屏幕是不连续的离散象素组成,每个象素覆盖一因为计算机屏幕是不连续的离散象素组成,每个象素覆盖一定面积,定面积,而每个象素只能显示一种颜色而每个象素只能显示一种颜色。也就是说,该象素。也就是说,该象素只能显示该覆盖区域某一点处的颜色,不可能反映整个区域只能显示该覆盖区域某一点处的颜色,不可能反映整个区域颜色,于是出现失真或图形丢失。颜色,于是出现失真或图形丢失。常用的反走样方法主要有:常用的反走样方法主要有:提高分辨率提高分辨率、区域采样区域采样、加权区域采样加权区域采样等等。331)提高分辨率的反走样方法)提高分辨率的反走样方法方法简单,代价大。如显示器水平与竖直分辩率提高方法简单,代价大。如显示器水平与竖直分辩率提高1倍,则显示倍,则显示器点距减器点距减1倍,帧缓存容量则增加到原来的倍,帧缓存容量则增加到原来的4倍,扫描转换同样大倍,扫描转换同样大小的图元却要花小的图元却要花4倍时间。倍时间。2)区域采样)区域采样反走样方法反走样方法1)将直线段看作具有一定宽度的狭长矩形;)将直线段看作具有一定宽度的狭长矩形;2)直线段矩形与某象素正方形有交(或覆盖)时,求相交(或覆盖)直线段矩形与某象素正方形有交(或覆盖)时,求相交(或覆盖)区域面积;区域面积;3)根据相交区域面积,确定该象素的亮度值)根据相交区域面积,确定该象素的亮度值l直线段对一个像素亮度的贡献与相交区域面积成正比;直线段对一个像素亮度的贡献与相交区域面积成正比;l当直线段和某个像素不相交时,它对该像素的亮度无影响;当直线段和某个像素不相交时,它对该像素的亮度无影响;l相同面积的相交区域对像素亮度贡献相同,与相交区域在像素内位置无关。相同面积的相交区域对像素亮度贡献相同,与相交区域在像素内位置无关。区域采样区域采样方法特点:方法特点:关键:如何快速计算这个面积?关键:如何快速计算这个面积?方法方法 1:多边形精确求相交区域面积,效率低;:多边形精确求相交区域面积,效率低;方法方法 2:面积离散近似计算,将象素细化子分为多象素,子象素相:面积离散近似计算,将象素细化子分为多象素,子象素相交(或覆盖)的数目即为面积。交(或覆盖)的数目即为面积。34OpenGL反走样函数oglEnable(GL_LINE_SMOOTH);oglEnable(GL_BLEND);oglBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);GL_POINT_SMOOTH GL_LINE_SMOOTHGL_POLYGON_SMOOTH35实例:图案填充ofillPattern.cpp36上机o考虑扫描线填充算法实现:考虑封闭的首尾相连的直线段集合,凸多边形o考虑剖面线填充算法实现:同37
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!