收藏 分享(赏)

西安电子科技大学《计算机图像显示技术》第11讲 图形显示软件(2)_百度....txt

上传人:j35w19 文档编号:4074951 上传时间:2018-12-06 格式:TXT 页数:9 大小:21.06KB
下载 相关 举报
西安电子科技大学《计算机图像显示技术》第11讲 图形显示软件(2)_百度....txt_第1页
第1页 / 共9页
西安电子科技大学《计算机图像显示技术》第11讲 图形显示软件(2)_百度....txt_第2页
第2页 / 共9页
西安电子科技大学《计算机图像显示技术》第11讲 图形显示软件(2)_百度....txt_第3页
第3页 / 共9页
西安电子科技大学《计算机图像显示技术》第11讲 图形显示软件(2)_百度....txt_第4页
第4页 / 共9页
西安电子科技大学《计算机图像显示技术》第11讲 图形显示软件(2)_百度....txt_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、 本文由taoml1234贡献ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。计算机图形显示技术主讲 徐 青西安电子科技大学 雷达信号处理国防科技重点实验室第十一讲Bresenham画线算法 Bresenham画线算法 圆的生成算法图形软件Bresenham画圆法 Bresenham画圆法 中点画圆法区域填充算法扫描线填充算法 边界填充算法2图形软件 Bresenham画线算法 Bresenham画线算法About BresenhamE.Jack BresenhamProfessor Professor of Computer SciencePh.D., S

2、tanford University, 1964MSIE, Stanford University, 1960 BSEE, University of New Mexico, 1959Retired from 27 years service at IBM as a SeniorTechnical Staff Member in 1987. Have taught 10 years at Winthrop. Holder of five patents.3图形软件 Bresenham画线算法 Bresenham画线算法Bresenham算法 Bresenham算法该算法由Bresenham在1

3、965年提出,是目前使用较 该算法由Bresenham在 年提出, 年提出为广泛的一种扫描转换算法,可用于直线、圆弧等图 为广泛的一种扫描转换算法,可用于直线、 元的扫描转换。 元的扫描转换。4图形软件 Bresenham画线算法 Bresenham画线算法Bresenham画线算法基本思想 Bresenham画线算法基本思想过各行各列像素中心构造一组假象的栅格 按直线 点到 点的 计算直线 各 直 格线的 点, 线的 点, 的 号 该列象素中 点 的象素d d dd5图形软件 Bresenham画线算法 Bresenham画线算法Bresenham画线算法 Bresenham画线算法直线 点

4、 x1, y1 到 点 x2, y2 直线 点 y1 到 点 y2 直线 为 y=kx+b 直线 为 中b 中b = y1 - k * x1y2 y1 dy k= = x2 x1 dx6图形软件 Bresenham画线算法 Bresenham画线算法Bresenham画线算法 Bresenham画线算法直线 k 0,1 x2x1的 1a象 直线 k 0,1 x2x1的 1a象 的 象 DDA算法的 DDA算法的 算法的 xi+1=xi+1 (1) (2) yi+1=yi+k 1a象 currency1直线栅“, 象, 在1a象,currency1直线栅“,xfifl 元 1元 xi+1=xi+

5、17图形软件 Bresenham画线算法 Bresenham画线算法Bresenham画线算法 Bresenham画线算法直线 k 0,1 x2x1的 1a象 直线 k 0,1 x2x1的 1a象 的 象 由于k不一 是 , 由(2)出的y不一 是 由于k不一 是 , 由(2)出的 出的y 。”用 y的 yi y 。”用 y的 y y假 直线第i像素为 直线第i(xi,yi),的下一点 , 的像素点的可能为(x 的像素点的可能为(xi+1,yi) 或(xi+1,yi+1)。 图 +1)。 图 8图形软件 Bresenham画线算法 Bresenham画线算法Bresenham画线算法 Bres

6、enham画线算法直线 k 0,1 x2x1的 1a象 直线 k 0,1 x2x1的 1a象 的 象 图 在x=xi+1处,直线y的y=k(xi+1)+b +1处 直线y的y=k(x 该点 点(xi+1,yi)点(xi+1,yi+1)的 为 点(x 点(x +1)的 为d1d2 d1=y-yi =k(xi+1)+b-yi =y+1)+bd2=(yi+1)-y=(yi+1)-k(xi+1)-b +1)+1)+1) , 的 为 的 为 d1-d2=2k(xi+1)-2yi+2b-1 +1)- +2b(3) (4) (5)9图形软件 Bresenham画线算法 Bresenham画线算法Bresen

7、ham画线算法 Bresenham画线算法直线 k 0,1 x2x1的 1a象 直线 k 0,1 x2x1的 1a象 的 象 5 , 下 下 currency1d1-d20, 直线的理点 (xi+1,yi+1) 0 直线的理点 (x 较 ,下一直线像素点 (x 较 , 下一直线像素点 (xi+1,yi+1) currency1d1-d2x1的 1a象 直线 k 0,1 x2x1的 1a象 的 象 , 用 d1-d2 的 号 可 下一像素点 , 用 的选择 xi、yi,不 于计算。为 , 构造一 x 不 于计算。为 ,的 的 pi= x *(d1-d2)=2 xiy-2yix +c y=y2-y

8、1 c=2y+x(2b-1)y=y2-y1 c=2y+x(2b 6 中 x=(x2-x1)0, p 号 中 x=(x2-x1)0, pi (d1-d2) 号 11图形软件 Bresenham画线算法 Bresenham画线算法Bresenham画线算法 Bresenham画线算法直线 k 0,1 x2x1的 1a象 直线 k 0,1 x2x1的 1a象 的 象 i+1(6)中的i , i+1 (6)中的 中的i pi+1= x *(d1-d2)=2 xi+1y-2yi+1x +c +1可 可 (7) (6), 由xi+1=xi+1可 (7) (6), 由x pi+1=pi+2y-2x (yi+

9、1-yi) +2 8 假 直线的 端点 是 像素点的, 假 直线的 端点 是 像素点的, 可到p y1, 中的x x1, y1,b 6 中的xi, yi可到pi的 p1=2y-x =2 9 12 7 图形软件 Bresenham画线算法 Bresenham画线算法Bresenham画线算法 Bresenham画线算法直线 k 0,1 x2x1的 1a象 直线 k 0,1 x2x1的 1a象 的 象 用构造的 ,可第1a象 的直 用构造的 ,可第1a象 的直线Bresenham算法 Bresenham算法 p1=2y-x =2 xi+1=xi+1 yi+1=yi+1, yi+1=yi, pi+1

10、=pi+2(y-x) +2( pi+1=pi+2y +2 currency1pi 0 0 currency1pix1的 1a象 直线 k 0,1 x2x1的 1a象 的 象 算法可看出,第i+1 的 pi+1 第i 的 算法可看出, i+1 的 的 p 第i p 直线的 端点 pi、直线的 端点 x、y, ,用 2 算, 五处理, 2 用 2 算, 五处理,2可 用左移一 实现 该算法速度快 易于硬件实现14Bresenham画线算法描述 Bresenham画线算法描述图形软件 Bresenham画线算法 Bresenham画线算法直线 k 0,1 x2x1的 1a象 直线 k 0,1 x2x

11、1的 1a象 的 象 1、输 端点(x1,y1),(x2, y2), 第一点 为 输 端点(x1,y1),(x2, y2), 点 2、计算x =x2-x1; y=y2-y1 计算 =x2y=y2-y1 计算 p i=1 计算p1=2 y- x i=1 3、直线的下一点 直线的下一点 xi+1=xi+1 +1 ifpi 0 yi+1=yi+1 +1 否 yi+1=yi 15图形软件 Bresenham画线算法 Bresenham画线算法Bresenham画线算法描述 Bresenham画线算法描述直线 k 0,1 x2x1的 1a象 直线 k 0,1 x2x1的 1a象 的 象 4、画点 xi+

12、1, yi+1 画点 5、下一 pi+1 下一 p if pi 0 pi+1=pi+2y-2x +2 +2 否 pi+1=pi+2y 6、i=i+1 if i0 (x,y)于圆边界外 (x,y)于圆边界外39图形软件 圆的生成算法 圆的生成算法中点画圆算法假 用该算法计算出第k点(xk,yk) ,下一 需 假 用该算法计算出第k点(x像素是A(x 像素是A(xk+1,yk) ,B(xk+1,yk-1)中xk+1=xk+1 中x A,B的中点M(xk+1,yk-0.5)P Xk ,Yk A M B40图形软件 圆的生成算法 圆的生成算法中点画圆算法在M处 处 pk= fcircle(xk+1,y

13、k-0.5)=xk+12+ (yk-0.5)2-r2:currency1pk 0,中点M在圆 ,扫描线yk的像素 0,中点M在圆 ,扫描线y(xk+1,yk) 接 于圆边界, 下一点 边的点 接 于圆边界, A(xk+1,yk)否 ,中点M于圆外或在边界, 选择扫描线 否 ,中点M于圆外或在边界,yk-1的像素B(xk+1, yk-1) 的像素B(xpk+1=( xk+1+1)2+ (yk+1-0.5)2-r241图形软件 圆的生成算法 圆的生成算法中点画圆算法递 达 递 达 pk+1=pk+2xk+1+(y2k+1-y2k)-(yk+1-yk)+1中:yk+1是yk(pk 0)或是yk-1(

14、 pk 0), 于pk 中: 0)或是 或是y 0), 于p的 号圆在 (x0,y0)=(0,r)处 可到 圆在 (x )=(0,r)处 可到 (1,rp0= fcircle(1,r-0.5)=5/4 r42图形软件 圆的生成算法 圆的生成算法中点画圆算法中点圆算法的算法 示 中点圆算法的算法 示 p0= 5/4 r xk+1=xk+1 yk+1=yk,pk+1= pk+2xk+1+1 currency1pk0 yk+1=yk-1,pk+1= pk+2xk+1+1-2yk+1 currency1pk0 +143图形软件 圆的生成算法 圆的生成算法中点画圆算法对于2xk+12yk+1本 是一 达

15、 对于2x 2xk+1 为2 为2 2yk+1为0(currency1pk0)或-2(currency1pk0), 为0 0)或 2(currency1 0), 在 (x0,y0) =(0,r),2xk+12yk+1的 在 (x =(0,r),为0 为02r44图形软件 圆的生成算法 圆的生成算法中点画圆算法 1. 输圆半径r圆心(xc,yc), 到圆心在原点的圆周的第 输圆半径r圆心(x ), 到圆心在原点的圆周的第 一点为:(x 一点为:(x0,y0)=(0,r) 2. 计算 的 计算 的 p0=5/4 r 3. 在xk处, k=0 , 成下列 在x 处, k=0 成下列 , 假 p 0,

16、中心在(0,0)的圆的下一点为 假 pk 0,中心在(0,0)的圆的下一点为(xk+1,yk), 的圆的下一点为(x pk+1= pk+2xk+1+1 否 ,圆的下一点为(x 1), 否 ,圆的下一点为(xk+1, yk-1), pk+1= pk+2xk+1+1-2yk+1 +1 中 +1, 中 2xk+1=2xk+1,2yk+1=2yk-245图形软件 圆的生成算法 圆的生成算法中点画圆算法4. 在 78圆中的对称点 在 7 5. 计算出的像素(x,y)移动到中心在(xc,yc) 计算出的像素(x,y)移动到中心在(x (x,y)移动到中心在 的圆 径, 画 的圆 径, 画 x=xc+x y

17、=yc+y6. 重 3到5,直 xy 重 3 直 x46图形软件 区域填充算法 区域填充算法区域填充是指在一界区域 填充 些 或图 该区域的边界可是圆、 边形 任意 线, 该区域的边界可是圆、 边形 任意 线,区域 ”像素的 称为实心区域 , 区域 ”像素的 称为实心区域 , 或 现一 的 图 或 现一 的 图 的fl是实心区域的填充算法47图形软件 区域填充算法 区域填充算法扫描线填充算法扫描线算法是按扫描线 ,计算扫描线 扫描线算法是按扫描线 ,边形的 区间,再用的 显示些区 边形的 区间, 间的像素, 成转换 间的像素,区间的端点可通过计算扫描线 边形边界线的 点获48图形软件 区域填充

18、算法 区域填充算法扫描线填充算法对于一 扫描线, 边形的扫描转换过 可为 对于一 扫描线, 1 计算扫描线 边形各边的 点 计算扫描线 边形各边的 点 2 ” 点按x递 ” 点按x递 3 对 第一 第,第三 第 等等 对 第一 第 ,第三 第 等等 对 点 扫描线 边形的一 区间, 对 点 扫描线 边形的一 区间, 4 区间 的像素成 边形 , 区间 的像素成 边形 , 区间外的像素成 49图形软件 区域填充算法 区域填充算法扫描线填充算法P6(2,7)扫描线填充示意图50图形软件 区域填充算法 区域填充算法扫描线填充算法为了提高效 ,在处理一 扫描线,对 为了提高效 ,在处理一 扫描线,的

19、边形的边进行 算 currency1前扫描线 的边称为性边, currency1前扫描线 的边称为性边,按 扫描线 点x递 的 存在一 中, 按 扫描线 点x递 的 存在一中, 称 为“边 (AET) 称 为“边 (AET)51图形软件 区域填充算法 区域填充算法扫描线填充算法“边 (AET)结点 “边 (AET)x currency1前扫描线 边的 点 x 该边 的currency1 ymax 该边” 的 高扫描线号y ymax 该边” 的 高扫描线号ymax52图形软件 区域填充算法 区域填充算法扫描线填充算法扫描线6 扫描线6的“边 扫描线7 扫描线7的“边 53考 考 大“ 第一 围计算机图形学 显示 fi 述,可选择自fl 的 fi , 自fl的 想, 不少于1500。 自fl的 想,不少于1500。第 机 。画点画圆采用的 体 法, ,结果。机结 发到 机结 发到 为防 问题 , ”到回为 的 。54机 1、画出直线段 1,2 7,6 。 7 画出直线段 2、画出圆心在 8,8 ,半径为4的圆。 画出圆心在 ,半径为 的圆。 半径为4 用点或小段直线逼 。 用点或小段直线逼。 不能直接调用画直线、画圆的算法。 不能直接调用画直线、画圆的算法。2009年12 31前 2009年12 31前 55

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报