- 1、本文档共94页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. 圆弧的逐点插补法 2. 圆弧的Bresenham算法 3. 绘制圆弧的其它几种方法 4. 椭圆的生成算法 5. 其它二次曲线绘制举例 3.1圆弧的逐点插补法 圆弧逐点插补法算法的基本思想是:在绘制圆弧的过程中,每绘制一个点就与圆弧进行比较,根据比较的结果决定下一步的走向,这样一步一步逼近圆弧,逐点比较法的执行过程如下: 圆弧的逐点插补法(1/15) 圆弧的生成按圆弧所在的象限以及画弧方向(逆时针还是顺时针)进行。若圆弧跨过几个象限,应按象限分段生成。我们讨论问题还是从最简单形式开始,最后再推广到所有象限中去。 若画第一象限的圆弧AB,如下图3-1所示,起点为A(xa, ya), 终点为B(xb, yb),圆心为O(0,0),设绘图笔当前位置为 K(xk, yk),这里的坐标为局部坐标。 圆弧的逐点插补法(2/15) 圆弧的逐点插补法(6/15) 圆弧的逐点插补法(7/15) 圆弧的逐点插补法(8/15) 例 用逐点比较法逆时针画圆弧AB,设起点为A(4,3), 终点为B(0,5),圆心为O(0,0)。 算法生成圆弧从起点开始,总走步数J=|0-4|+|5-3|=6,起点处F0=0,走步方向的规定按第一象限进行。算法的计算过程列于下表,其结果如图3-2所示。 圆弧的逐点插补法(10/15) 思考:圆在现实生活中应用广泛,以优美,对称的规则形状让很多人喜爱。太阳,月亮是圆的,给了诗人们多少浪漫的幻想,留下了多少传世诗篇,我们说圆了我们的梦想,这个圆就有另一层含义了。绘制圆这个最简单的二次曲线当然是我们图形学中的重要问题。绘制圆的算法很多,这个在第三节我们再介绍。根据圆的对称这个特点,我们在绘制圆的过程中很简单,只要找到圆周的八分之一圆弧的点,就可以通过对称性找到圆周的所有点,如下图所示: 圆周的八对称性质 在计算机屏幕中绘制圆,圆心一般不在坐标为(0,0)的位置,假设要绘制的圆心在(XC,YC),那么来个坐标转换就可以解决问题了,比如上面图形中的圆上相对于圆心(0,0)任一点坐标(x,y),转换到屏幕中以(XC,YC)为圆心的圆,则实际坐标变为(XC+x, YC+y)。这样在绘制的过程中我们只要加一个实际圆心坐标就好了。 圆弧的逐点插补法(13/15) void CDddView::OnCircle1() { //注意这个函数的参数为空,这个程序要能正常 运行要注意把pDC和rect二个变量作为CDddView类的成员变量 //程序绘图接口 pDC=GetDC(); GetClientRect(rect); int xc=200,yc=200; //圆心 float r=100.3; //半径 int x=int(r+0.5); //起始点x坐标 int y=0; //起始点y坐标 圆弧的逐点插补法(14/15) //停止条件 while(x=y) { pDC-SetPixel(xc+x,yc+y,color); pDC-SetPixel(xc+y,yc+x,color); pDC-SetPixel(xc-y,yc+x,color); pDC-SetPixel(xc-x,yc+y,color); pDC-SetPixel(xc-x,yc-y,color); pDC-SetPixel(xc-y,yc-x,color); pDC-SetPixel(xc+y,yc-x,color); pDC-SetPixel(xc+x,yc-y,color); //注意这个color也属于类的成员变量 圆弧的逐点插补法(15/15) if (x*x+y*y-r*r=0) { x=x-1; } if (x*x+y*y-r*r0) { y=y+1; } } } 课后思考 思考:上面的可执行程序是根据算法思想构造出来的原始程序,逐点画圆的原始算法思想我们好好体会一下,不难得出如下结论,我们把那个判断条件的东西改一下,是不是可以很方便的构造出来椭圆的逐点绘制算法呢?同学们在下次课前有兴趣考虑一下,看能不能自己写出椭圆的逐点绘制算法。 课后思考 分析上面的逐点法绘制圆弧的程序,虽然可以执行,确实可以画圆,但是还是有问题,问题出在什么地方呢?这个停止条件可以改变吗? 下面给出找出上面的问题,改进后的逐点法绘制圆弧的源程序,同学们仔细体会一下。 void CDddView::On
您可能关注的文档
- 激素调节(教师备课版)教案分析.ppt
- 激素调节教案分析.ppt
- 吉林大学材料加工工程复试真题教案分析.doc
- 吉林省吉林市届高三下学期第二次模拟考试理综(吉林二模)教案分析.doc
- 级册美术教案分析.doc
- 级常用词汇汇总教案分析.doc
- 级电路第一章打印教案分析.ppt
- 级高二学科物理主题闭合电路欧姆定律教师李凯波教案分析.doc
- 级化学《高等仪器》复习题教案分析.ppt
- 级机电一班何胜良教案分析.doc
- 2025年河北邯郸丛台区招聘教师326名笔试备考题库及答案解析.docx
- 2025江苏省南通中学选聘优秀教师4人笔试备考题库及答案解析.docx
- 电梯机械装配工岗位责任制.doc
- 高考物理《电路的基本概念及电路分析》同步练习.pdf
- 2025河北邢台市第二批高层次人才引进421人笔试备考题库及答案解析.docx
- 2025内蒙古医科大学招聘教学助理和管理助理岗位78人笔试备考题库及答案解析.docx
- 2025广东云浮郁南县人民政府行政服务中心见习岗位招聘2人笔试备考题库及答案解析.docx
- 2025江苏省人大附中苏州学校第二次招聘高层次优秀教育人才31人笔试备考题库及答案解析.docx
- 黄金介绍课件.pptx
- 2025北京海淀区机关事务管理服务中心所属幼儿园招聘5人笔试备考题库及答案解析.docx
最近下载
- 腹腔引流管脱管应急预案.pptx VIP
- 呼吸衰竭最新治疗指南解读PPT课件.pptx VIP
- 呼吸衰竭最新治疗指南解读PPT课件.pptx VIP
- 辟谷养身:12.空腹力革命.pdf VIP
- 施工组织设计主要经济指标.pptx VIP
- 2023年ISO15189 医学实验室管理体系全套表格.docx VIP
- DLT5210-2021版第一部分土建工程(热力系统土建工程质量验收)可编辑表格.docx VIP
- 10000字在学校挨机器人板子的作文.docx VIP
- 《A水利枢纽的拱坝设计中拱坝应力分析计算案例》3000字.docx VIP
- 2025年河北承德市中小学教师招聘考试试卷带答案.docx VIP
文档评论(0)