- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 基本图形生成算法 第二讲 圆和椭圆的生成 提出问题 圆的光栅化生成 在屏幕上绘出圆心在原点,半径为整数R的圆 圆的方程: x2 + y2 = R2 八分法画圆 圆的光栅化生成 (-y,x) (-x,-y) (-y,-x) (x,-y) 图1. 八分法示意图 (x, y) (y, x) (y,-x) (-x, y) 算法原理: 圆的光栅化生成-- 简单方程产生圆弧 利用函数方程,直接离散计算 圆的函数方程:x2 + y2 = R2 圆的光栅化生成-- 简单方程产生圆弧 圆的极坐标方程为: 圆的光栅化生成-- 中点画线法产生圆弧 算法立足点 从(0,R)点,顺时针开始; 上一个确定像素点为p(x, y),则在该二分之一象限内,下一个像素点只能是p1和p2中的一个; p(x, y) p1(x+1, y) p2(x+1, y-1) p(x, y) p1(x+1, y) p2(x+1, y-1) 构造函数 F(x,y) = x2 + y2 - R2 对于圆外的点(x,y), F(x, y) 0; 对于圆内的点F(x, y) 0; 设M为p1和p2的中点,则M为( x+1, y-0.5); M(x+1, y-0.5) 则若F(M)0 p1为下一个像素 p2为下一个像素 若F(M)0 构造判别式 = F(M) = F(x+1, y-0.5) = ( x+1 )2 + (y-0.5)2 – R2 d M(x+1, y-0.5) F(x, y) = x2 + y2 - R2 当d0,取p1,再下一个像素的判别式为: d1 = F(x+2, y-0.5) = ( x+2 )2 + (y-0.5)2 – R2 = ( x+1 )2 + (y-0.5)2 – R2 + 2x + 3 = d + 2x + 3 当d=0,取p2,则再下一个像素的判别式为: d = F(x+2, y-1.5) = ( x+2 )2 + (y-1.5)2 – R2 = ( x+1 )2 + (y-0.5)2 – R2 + 2x – 2y + 5 = d + 2(x - y) + 5 因为从(0,R)点开始,所以d的初始值 d0 = F(1, R-0.5) = 1 + (R-0.5)2 – R2 = 1.25 - R 算法实现(八分法的第二个八分圆) 1、算法开始,输入圆的半径R; 2、初始化d = d0 = 1.25 – R, x = 0, y = R; 并绘制点(x, y); 3、判断是否x R/1.414, 满足条件则退 出,程序结束; 4、判断d的符号:如果d 0, 选取并绘制p1点, 然后令d = d + 2x + 3; 如果d = 0, 选取并绘制p2点, 然后令d = d + 2(x – y) + 5; 返回到3; 整数化改进 使用d = d – 0.25代替d; 则原来的初始化d = 1.25 – R变为d = 1 – R; d0 变为 d-0.25; 由于d的初始值为整数,运算过程中的增量也是整数,因此d始终是整数,则d-0.25等价于d0; 因此整个函数完全可以改造成整数实现。 圆的光栅化生成-- Bresenham算法产生圆弧 P(x, y) P1(x+1, y) p2 (x+1, y-1) 从(0,R)点,顺时针开始; 上一个确定像素点为p(x, y),则下一个像素点只能是p1和p2中的一个; 算法立足点 P(x, y) P1(x+1, y) P2(x+1, y-1) 圆弧和p1以及p2像素点之间可能的关系 1 3 5 1、p1和p2全部在圆内部; 2、p1在圆上,p2在圆内部; 3、p1在圆外部,p2在圆内部; 2 4 4、p1在圆外部,p2在圆上; 5、p1在圆外部, p2在圆外部; 误差判据 以像素点到圆心的距离平方与半径R平方之差e为误差进行比较,则: ep1 = (x+1)2 + y2 – R2 ep2 = (x+1)2 + (y-1)2 – R2 p(x, y) p1(x+1, y) p2(x+1, y-1) (1) 令 D = ep1 + ep2, 分析判式对应的位置关系: 当D 0时, 只能对应1,2,3三种情形,其中1,2情况下,取p1, 只需判断3的情况。 第3种情况下,因ep10, ep20,则如 D 0, 可得出p2点距离圆弧远,取p1; 5 4 3 p(x, y) p1(x+1, y) p2(x+1, y-1) 1 2 同理,当D 0时, 对应3,4,5三种情形,其中4,5情况下,取p2; 3的情形,如果 D 0, 可得出p1点距离圆弧远,取p2; 起始点为p(0,R)
您可能关注的文档
最近下载
- “金税四期”背景下的税务风险管理——基于LZ集团公司的案例分析.pdf VIP
- 欧洲规范-NF P94-220-2-外文.pdf VIP
- 2026上海电力股份有限公司校园招聘笔试备考题库及答案解析.docx VIP
- 净制中药饮片引用原药材检验结果验证方案.docx VIP
- 2柴油安全技术说明书.doc VIP
- 个人劳务用工合同.docx VIP
- T /CIPS 015—2025 专利池构建规范.pdf
- 在线网课学习课堂《心理·生活-人生(华北电大 )》单元测试考核答案.docx VIP
- 2025年螺栓等紧固件行业深度研究报告.docx
- 体例格式10:工学一体化课程《windows服务器基础配置与局域网组建》任务4学习任务信息页.docx VIP
文档评论(0)