图元属性及图形处理

图元属性及图形处理

ID:41894768

大小:691.01 KB

页数:37页

时间:2019-09-04

图元属性及图形处理_第1页
图元属性及图形处理_第2页
图元属性及图形处理_第3页
图元属性及图形处理_第4页
图元属性及图形处理_第5页
资源描述:

《图元属性及图形处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机图形学第6讲图元属性及图形处理华中科技大学吴义忠13545009970cad.wyz@hust.edu.cn主要内容图元属性:关键数据;颜色、点属性、线属性、曲线属性、填充属性、字符属性图元的一般处理填充算法裁剪算法反走样6.1图元属性——颜色颜色与灰度RGB模式与索引模式IndexRGBA模式(alfa)OpenGL颜色函数glutInitDisplayMode(GLUT_SINGLE

2、GLUT_RGB)orGLUT_INDEXRGBA模式Index模式:voidglClearColor*

3、();voidglClearIndex(GLfloatcindex);voidglSecondaryColor*();voidglEnable(GL_BLEND)6.1图元属性——点属性关键数据:点坐标颜色和大小样式(OpenGL不支持,可以自定义)voidglPointSize(GLintsize);6.1图元属性——线属性关键数据:起点、终点坐标颜色glColor*(…)线宽glLineWidth(wid)线型glEnable(GL_LINE_STIPPLE)glLineStipple(…);

4、画笔和画刷:使用矩形笔画线,则画刷起作用(OpenGL未提供)6.1图元属性——曲线属性关键数据颜色线宽线型精度(显示曲线的段数)Bezier曲线/NURBS曲线(后)6.1图元属性——填充属性关键数据:实体集合填充颜色填充样式glPolygonStipple(pattern)填充区域glBegin/glEndglEnable(GL_POLYGON_STIPPLE)6.1图元属性——字符属性颜色字体大小位置、方向glTranslateglRotate6.2图元的一般处理属性改变:颜色、线型、宽度等

5、;关键数据改变:图形变换:移动、旋转、放缩复制操作:拷贝粘贴、镜像、阵列关键点操作:拖动裁剪与延伸倒角与圆弧倒角……光栅显示的重要特点是能进行面着色,区域填充就是在一个闭合区域内填充某种颜色或图案。区域填充一般分两类:多边形填充和种子填充。6.3区域填充算法多边形填充算法给定一顶点序列(Pi,i=0,1,…,n),依次连线构成一封闭多边形。多边形内点判别——射线法若射线与多边形边界的交点个数为奇数时,则该点为内点;反之,交点个数为偶数时,则该点为外点。当扫描线过多边形顶点时,则交点为奇异点。奇异点

6、为局部极值点应看成两点,若为非极值点应看成一点。多边形填充算法多边形内点判别——夹角法夹角和为0,点p为外点;夹角和为360°,点p为内点CABDEPABCDEP这类算法建立在多边形边边界的矢量形式数据之上,可用于程序填色,也可用交互填色。该算法基于几何求交算法,步骤如下:输入多边形顶点坐标;求多边形顶点中最大和最小y坐标,以确定范围;计算每条扫描线起止点(交点),并扫描填充,直至所有扫描线处理完毕。1)扫描线填充算法思路(Scan-LineFilling)算法步骤扫描线填充算法改进——边相关扫描

7、线填充算法本算法改进的关键所在:如何快速求扫描线与多边形交点;扫描线填充利用画水平直线快速画法(为什么不用斜线?);应该利用扫描线与多边形交点的连贯性加速求交算法(多边形与扫描线相交,则与下一条扫描线很可能相交,交点可直接计算)由于相邻扫描线上的交点是与多边形的边线相关的。对同一条边,前一条扫描线yi与该边的交点为xi,而后一条扫描线yi+1=yi+1与该边的交点则为xi+1=xi+1/m,利用相关性可省去大量求交运算(算法详见图形学教材)。这类算法建立在多边形边界的图象形式数据之上,并需提供多边

8、形界内一点的坐标,一般只能用于人机交互填色,而难以用于程序填色。从多边形内部点出发,沿四连通方向(或八连通方向)扩散搜索区域内所有待填充的象素点,适用于交互绘图。算法思想:用4连通填充算法的填充结果用8连通填充算法的填充结果2)种子填色算法(SeedFilling)种子填色算法(见Test1.vcprj)给定多边形边界颜色及内部填充颜色;从内部点(x,y)开始,检测该点与边界和填充色是否相同,均不相同则填充该点;检测相邻点与边界和填充色是否相同,均不相同则填充该点;重复第③步直至所有象素点被填充。

9、算法步骤:算法特点:直接基于象素,用递归算法,不必求交。但递归太多,存储不够,易造成堆栈溢出。(可用一个大的矩阵记录象素填充的状态来避免递归算法)任意封闭区域的填充算法边界实体集合生成封闭性判断若封闭:得到边界实体集合的包容盒坐标转换:世界坐标-设备坐标每条扫描线求交根据交点显示扫描线3)图案填充算法(参考)实际应用中,有时需要用图案来填充平面区域,只需将种子填充算法中写象素的那部分代码修改。(种子点颜色改写为定义图案对应点颜色查表即可)定义填充图案是一个M×N的位图,用数组存放。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。