第4章2维图形的生成和变换.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章2维图形的生成和变换

计算机图形学 河北科技大学 理学院 教师 李艳 E-mail:byxliyan@ 第四章 二维图形生成和变换技术 第一节 基本绘图元素 第二节 直线段的生成 第三节 曲线的生成 第四节 区域填充 第五节 二维图形变换 第六节 二维图像裁剪 第一节 基本绘图元素 一 点 二 直线 三 曲线 四 区域填充 一 点 点是图形中最基本的图素,直线、曲线以及其他的图元都是点的集合。在几何学中,一个点既没有大小,也没有维数,点只是表示坐标系统中的一个位置。在计算机图形学中,点是用数值坐标来表示的。在直角坐标系中点由(x,y)两个数值组成的坐标表示.在三维坐标系中点由(x,y,z)三个数值组成的坐标表示。 一 点 一 点 二 直线 直线是点的集合.在几何学中直线被定义为两个点之间的最短距离。也就是说一条直线是指所有在它上面的点的集合,直线是一维的,即它们具有长度但没有维数。 二 直线 一般来讲.任何图形输出设备都能准确地画出水平线x和垂直线y,但要画出一条准确的斜线不是件容易的事。那么在图形显示器上如何生成斜线段呢?图形显示器是由一个个排列有序的像素构成,划分的像素点越多分辨率越高。例如.VGA卡640×480的显示器,分成640×480个网格.网格的单元称为像素,一条线段就是由一些连续可见的像素所组成。 二 直线 三 曲线 曲线包括圆、椭圆、弧线和由许多类型的方程所确定的图形。在计算机图形程序设计中最好将曲线定义成不能构成直线的点的集合。曲线被认为是图形学的基础,在生产设计中经常遇到的是曲线问题,这是因为曲线更能满足人们的设计要求。 曲线的生成与直线一样,也是用一系列计算出来并与曲线靠近的像素绘制的。曲线通过具有相同颜色的像素在显示表面上显示出来,曲线并不存在于显示表面上.而是仅存于数据库中。 四 区域填充 区域填充是一个彩色或图案区域,可以是均匀的也可以是不均匀的,区域边界可以是直线也可以是曲线。正如多种不同类型的线条一样.可提供不同的内部填充类型用以充满区域内部,填充的类型可能是不同的颜色、不同的灰度或者不同的图案。 第四章 二维图形生成和变换技术 第一节 基本绘图元素 第二节 直线段的生成 第三节 曲线的生成 第四节 区域填充 第五节 二维图形变换 第六节 二维图像裁剪 第二节 直线段的生成 一逐点比较法 二数值微分法 三中点画线法 四Bresenham法 一逐点比较法 一逐点比较法 由于分母 因此只需判断分子的正负即可,得偏差公式: 二 数值微分法(DDA) 假定直线的起点、终点分别为:(x0,y0), (x1,y1),且都为整数。  二 数值微分法(DDA) 基本思想 已知过端点P0 (x0, y0), P1(x1, y1)的直线段L y=kx+b 直线斜率为 二 数值微分法(DDA) 计算yi+1= kxi+1+b = kxi+b+k?x = yi+k?x 当?x =1; yi+1 = yi+k 即:当x每递增1,y递增k(即直线斜率); 注意上述分析的算法仅适用于?k? ≤1的情形。在这种情况下,x每增加1,y最多增加1。 当 ?k? ?1时,必须把x,y地位互换 二 数值微分法(DDA) 增量算法:在一个迭代算法中,如果每一步的x、y值是用前一步的值加上一个增量来获得,则称为增量算法。 DDA算法就是一个增量算法。 二 数值微分法(DDA) 例:画直线段 P0(0,0)--P1(5,2) x int(y+0.5) y+0.5 0 0 0+0.5 1 0 0.4+0.5 2 1 0.8+0.5 3 1 1.2+0.5 4 2 1.6+0.5 5 2 2.0+0.5 二 数值微分法(DDA) 缺点: 在此算法中,y、k必须是float,且每一步都必须对y进行舍入取整,不利于硬件实现。 三 中点画线法 三 中点画线法 构造判别式:d=F(M)=F(xp+1,yp+0.5) =a(xp+1)+b(yp+0.5)+c 当d0,M在直线(Q点)下方,取右上方P2; 当d0,M在直线(Q点)上方,取右方P1; 当d=0,选P1或P2均可,约定取P1; 能否采用增量算法呢? 三 中点画线法 若d?0-M在直线上方-取P1; 此时再下一个象素的判别式为 d1=F(xp+2, yp+0.5)=a(xp+2)+b(yp+0.5)+c =

您可能关注的文档

文档评论(0)

ipbohn97 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档