- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 基本图形的生成44278
3.3 圆的生成 3.3.1 八分法画圆算法 思路: (考虑到圆的对称性) 画出A点则剩下的7个点都能画出,画出B点则剩下的7个点都能画出, 因此,只讨论8分圆的画法即可 A(y,x) (-y,x) (-x,y) (-x,-y) (-y,-x) (y,-x) (x,-y) B 二 算法原理: 利用其函数方程,直接离散计算 圆的函数方程为: 缺点:计算量过大 三 圆的极坐标方程为: 可先通过平移变换,把计算所得的像素(x1,y1)坐标加上 一个位移量(delta_x和delta_y)即得所求像素坐标(x2,y2)。 即: x2=x1+delta_x y2=y1+delta_y 四 中点不在原点的圆: 3.3.2 中点画圆算法 (关键:找到d的增量) 一 基本思路: 利用中点M来选择下一个要显示的像素。 二 分析: M的坐标是(x+1,y-0.5) F(M)0 点M在圆的外边,圆离P2点近,取P2 F(M)=0 点M在圆的上边 , 取P2 F(M)0 点M在圆的里边, 圆离P1点近,取P1 问题:下一次取P3?P4?P5? ? M1 P1 P2 M2 M3 P3 P4 P5 1 构造判别式: 若d0 点M在圆的里边,圆离P1点近,则应取P1 下一个中点M2的判别式为: d=F(xp+2, yp-0.5) =(xp+2)2+(yp-0.5)2-R2 =d+2xp+3 即求出d的增量为: 2xp+3 若d≥0 点M在圆的外边,圆离P2点近,则应取P2 下一个中点M3的判别式为: d=F(xp+2, yp-1.5) =(xp+2)2+(yp-1.5)2-R2 =d+2(xp-yp )+5 即求出d的增量为:2(xp-yp )+5 总结求得的d的增量: 2xp+3 d0 2(xp-yp )+5 d≥0 2 求d的增量: (目的:判断下一个该显示的像素) 解决方法: M1 P1 P2 M2 M3 P3 P4 P5 p 3 求d的初始值d0: 起始点(即第一个像素)为(0,R), 判别式d的初始值为: d0=F(1,R-0.5) =1+(R-0.5)2-R2 =1.25-R 4 推导出的结果: d0=1.25-R d+2xp+3 d0 d+2(xp-yp )+5 d≥0 M1 P1 P2 M2 M3 P3 P4 P5 d= 5 可以利用推导出的结果,编写程序。 三 算法步骤: 1.输入圆的半径R。 2.计算初始值d=1.25-R、x=0、y=R。 3.绘制点(x,y)及其在八分圆中的另外七个对称点。 4.判断d的符号。 若d≤0,则先将d更新为d+2x+3,再将(x,y)更新为(x+1,y); 否则先将d更新为d+2(x-y)+5,再将(x,y)更新为(x+1,y-1)。 5.当xy时,重复步骤3和4。否则结束。 改进:用d-0.25代替d 算法步骤: 1.输入圆的半径R。 2.计算初始值d=1-R、x=0、y=R。 3.绘制点(x,y)及其在八分圆中的另外七个对称点。 4.判断d的符号。 若d0,则先将d更新为d+2x+3,再将(x,y)更新为(x+1,y); 否则先将d更新为d+2(x-y)+5,再将(x,y)更新为(x+1,y-1)。 5.当xy时,重复步骤3和4。否则结束。 四 源程序: void MidpointCircle(r,color) int r, color ; { int x,y,d; x = 0; y = r; d = 1-r; wholecircle(x,y,color); while( x y) { if (d 0) { d += 2*x+3; x++; } else { d += 2*(x-y)+5; x++ ; y--; } wholecircle(x,y,color); } } void WholeCircle(xc,yc,x,y.color) int xc,yc,x,y,color ; { putpixel(xc+x,yc+y,color); putpixel(xc-x,yc+y,color); putpixel(
您可能关注的文档
- 第二讲 证明不等式的基本方法 章末复习方案 课件(人教A选修4-5)43283.ppt
- Dreamweaver CS4工作区与基本操作.ppt
- 高一地理学案 1.1 区域的基本含义.doc
- 第一节 区域的基本含义43409.doc
- 1.2.2算法基本语句1.ppt
- 区域的基本含义43379.ppt
- 无私奉献区域地理高考复习目标达成的基本要求及策略.doc
- 第七课 第二框政治生活7.2民族区域自治制度:适合国情的基本政治制度.ppt
- 1.1区域的基本含义43647.doc
- 1.2基本算法语句43626.ppt
- 第12课 大一统王朝的巩固 课件(20张ppt).pptx
- 第17课 君主立宪制的英国 课件.pptx
- 第6课 戊戌变法 课件(22张ppt).pptx
- 第三章 物态变化 第2节_熔化和凝固_课件 (共46张ppt) 人教版(2024) 八年级上册.pptx
- 第三章 物态变化 第5节_跨学科实践:探索厨房中的物态变化问题_课件 (共28张ppt) 人教版(2024) 八年级上册.pptx
- 2025年山东省中考英语一轮复习外研版九年级上册.教材核心考点精讲精练(61页,含答案).docx
- 2025年山东省中考英语一轮复习(鲁教版)教材核心讲练六年级上册(24页,含答案).docx
- 第12课近代战争与西方文化的扩张 课件(共48张ppt)1.pptx
- 第11课 西汉建立和“文景之治” 课件(共17张ppt)1.pptx
- 唱歌 跳绳课件(共15张ppt内嵌音频)人音版(简谱)(2024)音乐一年级上册第三单元 快乐的一天1.pptx
文档评论(0)