网站大量收购独家精品文档,联系QQ:2885784924

计算机地图制图原理与方法-基本图形生成算法幻灯片.ppt

计算机地图制图原理与方法-基本图形生成算法幻灯片.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
椭圆的生成算法 F(x,y)=b2x2+a2y2-a2b2=0 椭圆的对称性,只考虑第一象限椭圆弧生成,分上下两部分,以切线斜率为-1的点作为分界点。 椭圆上一点处的法向: N(x,y) = (F) x i + (F) y j = 2b2 x i + 2a2 y j 在上半部分,法向量的y分量大 在下半部分,法向量的x分量大 上半部分 下半部分 法向量 两分量相等 M1 M2 在当前中点处,法向量( 2b2 (Xp+1) ,2a2 (Yp-0.5))的y分量比x分 量大, 即: b2 (Xp+1) a2 (Yp-0.5), 而在下一中点,不等式改变方 向,则说明椭圆弧从上部分转入下部分 椭圆的中点画法 与圆弧中点算法类似:确定一个象素后,接着在两个候选象素的中点计算一个判别式的值,由判别式的符号确定更近的点 先讨论椭圆弧的上部分 设(Xp,Yp)已确定,则下一待选像素的中点是(Xp+1,Yp-0.5) d1=F(Xp+1,Yp-0.5)= b2(Xp+1)2+a2(Yp-0.5)2-a2b2 根据d1的符号来决定下一像素是取正右方的那个,还是右上方的那个。 若d1<0,中点在椭圆内,取正右方象素,判别式更新为: d1=F(Xp+2,Yp-0.5)=d1+b2(2Xp+3) d1的增量为b2(2Xp+3) 当d1≥0,中点在椭圆外,取右下方象素,更新判别式: d1=F(Xp+2,Yp-1.5)=d1+b2(2Xp+3)+a2(-2Yp+2) d1的增量为b2(2Xp+3)+a2(-2Yp+2) d1的初始条件:椭圆弧起点为(0,b); 第一个中点为(1,b-0.5) 初始判别式:d10=F(1,b-0.5)=b*b+a*a(-b+0.25) 转入下一部分,下一象素可能是正下方或右下方,此时判别式要初始化。 d2 = F(Xp+0.5,Yp-1) = b2(Xp+0.5)2+a2(Yp-1)2-a2b2 若d20,取右下方像素,则d2 = F(Xp+1.5,Yp-2) = d2 + b2(2Xp+2)+a2(-2Yp+3) 若d2=0,取正下方像素,则d2 = F(Xp+0.5,Yp-2) = d2 + a2(-2Yp+3) 下半部分弧的终止条件为 y = 0 程序:void draw_Ellipe_Mid(int a,int b) { int x,y; float d1,d2; x = 0; y = b; d1 = b*b +a*a*(-b+0.25); while( b*b*(x+1) a*a*(y-0.5)) { SetPixel(x,y); if (d10) {d1 +=b*b*(2*x+3); x++; } else { d1 +=(b*b*(2*x+3)+a*a*(-2*y+2)); x++; y--; } }//上部分 d2 = sqrt(b*(x+0.5))+sqrt(a*(y-1))-sqrt(a*b); while(y =0) { SetPixel(x,y); if (d2 0) { d2 +=b*b*(2*x+2)+a*a*(-2*y+3); x++; y--;} else {d2 += a*a*(-2*y+3); y--; } } } 第三章 基本图形生成算法图形 本章将主要研究在光栅显示器上的直线、圆、椭圆等的生成算法。 内存 显存或缓存 设备阵列 图形函数入口 LINE()等 主机 显卡、其他接口 确定象素位置 写入颜色等属性 显示器、打印机等 由驱动程序写入设备 D/A转换 显卡口 并行口 USB口 内存插槽 CPU GPU:生成点阵图形 运行图形程序 D/A转换:图形显示 基本图形的生成 几何图形G={Pi | Pi 最接近图形的象素 } 基本图形的生成算法任务之一就是找出所有的Pi . 点表示为象素(Pixel),对应于显存地址单元 读写某一象素是硬件设备提供的最基本功能 一维图形,由一个象素宽的直线或曲线表示 二维图形由确定区域的象素表示 线图元的扫描转换是基本图形生算法的基础; 3.2、直线的生成算法  即是找出逼近直线的一组象素,按扫描线顺序,对这些象素进行写操作。 3.2.1. 数值微分法(DDA) 假定直线的起点、终点分别为:(X0,Y0), (X1,Y1),且都为整数。  (X i+1 ,Yi + k) (X

您可能关注的文档

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档