版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1Chapter3
BasicRasterGraphicsAlgorithmsforDrawing2DPrimitives
基本二维图元的生成算法2本章内容(outline)直线的扫描转换(SCANCONVERTINGLINES)圆与椭圆的扫描转换(SCANCONVERTINGCIRCLEANDELLIPSE)区域填充(FILLINGREGION)字符生成(GENERATINGCHARACTERS)反走样(ANTIALIASING)二维裁剪(2DCLIPPING)3图形扫描转换(scan-conversion)Scan-conversion:确定一个象素集合及其颜色,用于显示一个图形的过程,称为图形的扫描转换或光栅化。图形扫描转换分为两步:
确定有关(组成图形的)象素;用图形的颜色或其他属性对象素进行写操作。4TheoutputpipelineToclipaprimitivepriortoscanconversionMostoftenforlines,rectangles,polygonsToscanconvertaprimitivepriortoclippingGeneralizestoarbitraryclipregionsGeneratetheentirecollectionofprimitivesintoatemporarycanvasandthentocopyPixelonlythecontentsofthecliprectangletothedestinationcanvasOftenusedfortext5Scanconvertinglines用离散点集逼近采用几何方式定义的直线段(注意斜率slope)6SCANCONVERTINGLINES(直线的扫描转换)问题
给定直线段的两个端点(x0,y0)和(x1,y1),
把其在光栅扫描显示器上显示出来.描述
理想的直线段:没有线宽,由无数个点构成光栅扫描显示器上:有限个象素组成,有线宽.7ScanconvertinglineEqualsto:GiventheendpointsandthecolorofthelineComputingthecoordinatesofthepixelsthatlieonornearanideallineWritingthepixelsbythecolor8p0p1●●●●●●表示:用最靠近直线的一些网格点来代表它直线的表示直线的表示(therepresentationoflines)9两种基本的直线扫描转换算法数值微分法(DigitalDifferentialAnalyzer-DDA)也称为基本增量法(BasicIncrementalAlgorithm)中点画线法(MidpointLineAlgorithm)BresenhamLineAlgorithm10PrincipleofBasicIncrementalAlgorithm(1)(xi,Round(yi))(xi,yi)(xi+1,Round(yi+k))(xi+1,yi+k)11方法数值微分法(DDA---DigitalDifferentialAnalyzer)
12数值微分法(DDA)13令yir=round(yi)所求点坐标为(round(xi+1),round(yi+1))其中,xi+1=xi+1,yi+1=yi+m;数值微分法(DDA)14数值微分法(DDA)●●●●●p1p0●●问题若|m|>1,则x向每变化1个单位,y向有可能超出1个步长15数值微分法(DDA)最大步长(步距)步进方向:的方向16数值微分法(DDA)17数值微分法(DDA)算法:18数值微分法(DDA)voidLine(/*Assumes-1<m<l,x0<x1*/int
x0,int
y0,/*Leftendpoint*/
int
x1,int
y1,/*Rightendpoint*/int
value)/*Valuetoplaceinline'spixels*/{int
x;/*xrunsfromx0tox1inunitincrements*/double
dy=y1-y0:double
dx=x1-x0;double
m=dy/dx;double
y=y0;for
(x=x0;x<=x1;x++){PutPixel(x,Round(y),value);/*Setpixeltovalue*/y+=m;/*Stepybyslopem*/}}/*Line*/
Theincrementallinescan-conversionalgorithm.19算法优点:简单、自然。算法缺点:用到了浮点运算,计算效率低。自变量的选择可根据斜率确定,以得到最佳的直线效果:数值微分法(DDA)20中点画线法(MidpointLineAlgorithm)问题引出
为解决DDA算法中需要浮点数进行运算,且输出时需取整的不利条件,可以用中点画线法。假设直线的斜率m∈[0,1],两个端点分别是(x0,y0),(x1,y1)。21P(xp,yp)P1(xp+1,yp)中点判别方法示意图QP2(xp+1,yp+1)MMidpointLineAlgorithm(1)22思想当前一点已确定,用P(xp,yp)来代表时,下一点仅有可能在P1和P2中选,用M表示P1,P2的中点,M(xp+1,yp+0.5)。Q是理想直线上x=xp+1处的点.比较M和Q的位置关系,以确定下一点的走向.MidpointLineAlgorithm(2)23比较M和Q:若M位于Q的下方,即ym<yq,则应取p2点;若M位于Q的上方,即ym>yq,则应取p1点;原则:
当两侯选点的中点落在直线下方时,选较高点,否则选较低点。MidpointLineAlgorithm(3)24直线的正负划分性l=F(x,y)=0(x0,y0)F(x0,y0)>0F(x0,y0)<025直线的正负划分性则该直线将其所在空间一分为二:设平面直线方程为:26MidpointLineAlgorithm(4)定义直线函数:特点:其中:27MidpointLineAlgorithm(5)Definedecisionfunction(构造判别函数):Definedecisionvariable(引入判别参数):其中:28MidpointLineAlgorithm(6)算法描述:(假设X方向的步长为1)问题:如何快速计算判别参数的值?采用增量计算方法优化判别公式的计算29如黄色线所示情形如蓝色线所示情形MidpointLineAlgorithm(7)30MidpointLineAlgorithm(8)P(xp,yp)P2(xp+1,yp+1)P1(xp+1,yp)QMM1P4(xp+2,yp+1)P3(xp+2,yp)(xp+2,yp+0.5)31MidpointLineAlgorithm(9)32MidpointLineAlgorithm(10)ThefirstdecisionvariabledstartisThefirstmidpointisat(x0+1,y0+0.5),33算法的递推公式是:MidpointLineAlgorithm(11)递推公式:34消除浮点数的算法公式是:MidpointLineAlgorithm(12)当直线斜率的绝对值大于1时,x,y互换;此时应判别点在直线的左/右侧关系。35例:用中点画线法光栅化一条连接两点(0,0)和(5,2)的直线段,写出计算过程。Example(1)36xydOutpixel初始x=012340123450011221-33-151(0,0)(1,0)(2,1)(3,1)(4,2)(5,2)递推如下:Example(2)37456321001234567Example(3)Thepixelsthatapproximatethelinefrompoint(0,0)topoint(5,2)usingmidpointalgorithmandtheidealline.381.思考题:请考虑如何将该算法推广到任意
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027届江苏省淮安市淮安区名校协作体高三上学期9月阶段检测历史试题(含答案)
- 食品召回管理办法及GB 2763-2026培训考试试题及答案
- 具身智能+灾害救援无人机协同救援方案
- 物业物业社区安全巡查与社区服务品牌化方案
- 关于品质管控的演讲稿
- 关于饮料品牌演讲稿范文
- 水利安全主题演讲稿
- 2026年秋招:陕西果业集团面试题及答案
- 2026年贵州航空人员招聘考试练习试卷(含答案)
- 2026年贵州政务服务中心招聘考试练习试卷(含答案)
- 2026年烟花爆竹经营从业人员考核试题库(附答案)
- 2026秋新教材人教PEP版五年级上册英语Unit 1Different friends单元整体教学设计
- 六年级上册语文1-8单元基础默写通关练习卷
- 透视双头鹰:从文艺看俄罗斯的历史道路(四川大学)知到智慧树章节测试掌握度答案
- 2026年中秋国庆节前安全生产专题培训
- 2026年安徽省基层法律工作试题(附答案)
- 2.3 探索内角和的奥秘 课件(共23张) 北师大版数学五年级上册
- 悬挑式脚手架专项拆除施工方案
- 2026CAPA纠正预防措施管理台账台账
- 2026年危险化学品重大危险源企业安全隐患排查重点内容
- 2025年大理石购销合同模板
评论
0/150
提交评论