圆弧与线宽及属性讲课.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 因为 * * 此处 * * 用 计算 不是常量 * 总结 在整个圆上, 不再是常量 与直线算法结构相同 与直线算法的主要差别 需要在每一步计算新 需要实数计算 中点 M E SE 当前点 中点 M’ 中点 M” 扫描转换圆弧- Bresenham 方法 * 初始条件 令 r 为一个整数. 从 开始计算 下一个中点 M 位于 处 所以 Bresenham直线扫描转换算法的优点如下: ⒈ 不必计算直线的斜率,因此不做除法。 ⒉ 不用浮点数,只用整数。 ⒊ 只做整数加减运算和乘2运算,而乘2运算可以用 移位操作 实现。 Bresenham算法的运算速度很快, 并适于用硬件实现。 圆的Bresenham算法的程序 circle (xc, yc, radius, c) int xc, yc, radius, c; { int x, y, p; x=0; y=radius; p=5-4*radius; while (xy){ ??????? plot_circle_points(xc, yc, x, y, c); ??????? if (p0) p=p+2*x+3; ??????? else{ ????????????????? p=p+2*(x-y)+5; ????????????????? y-=1; ??????????????? } ??????? x+=1; ???????????????? } if (x= =y) ??????? plot_circle_points(xc, yc, x, y, c); }   plot_circle_points(xc, yc, x, y, c) int xc, yc, x, y, c; { putpixel(xc+x, yc+y, c); putpixel(xc+x, yc+y, c); putpixel(xc+x, yc-y, c); putpixel(xc-x, yc-y, c); putpixel(xc+y, yc+x, c); putpixel(xc-y, yc+x, c); putpixel(xc+y, yc-x, c); putpixel(xc-y, yc-x, c); }   Bresenham的圆生成算法 扫描转换椭圆弧 A – 角度微分法 B - 中点画法 椭圆生成方法 可通过椭圆长轴和短轴尺寸不同而修改画圆程序实现。 椭圆为到两定点(焦点) 距离之和等于常数点的集合。 假如短轴和长轴与坐标轴方向平行,可简化椭圆方程。 “标准位置”椭圆是指其长轴和 短轴平行于x和y轴, 参数rx和ry标出长、短半轴。 椭圆方程可借助于椭圆中心坐标 和参数rx和ry写为: Pf1+pf2=Const 标准位置椭圆的参数方程: x=xc+rxcosθ, y= yc+rysinθ。 考虑对称性可用来进一步减少计算量。 标准位置椭圆在四分像限中是对称的,必须计算一个整 四分像限中椭圆曲线的像素位置,再由对称性得到其 它三个像限中的像素位置。 椭圆生成方法 Pf1+pf2=Const A 扫描转换椭圆弧 A – 角度微分法 B - 中点画法 中点椭圆生成基本思想 给定长短轴参数rx、ry(假设ry≤rx)和椭圆中心位置(xc,yc)。 先确定中心在原点的标准位置的椭圆点(x,y), 即:取(xc,yc)=(0,0), 然后,将点变换为圆心在(xc,yc)的点。 定义椭圆隐函数形式为: fellipse(x,y)=ry2x2+rx2y2-rx2ry2 =0 中点椭圆生成基本思想 该函数具有下列特性: fellipse(x,y)<0,假如(x,y)位于椭圆边界内; fellipse(x,y)=0,假如(x,y)在椭圆边界上; fellipse(x,y)>0,假如(x,y)位于椭圆边界外。 将椭圆函数fellipse(x,y)作为中点算法的决策参数。 在每个取样位置,按照椭圆函数在沿椭圆轨迹两个候选像素间中点求值的符号选择下一个像素。 中点椭圆生成区域划分 中点法依据椭圆斜率将第一像限的椭圆(ry≤rx)分成两部分。 根据斜率变化确定步长方向: 斜率绝对值小于1的区域1内x方向取单位步长; 斜率绝对值大于1的区域2内y方向取单位步长。 第一象限椭圆区域划分 区域1:椭圆切线斜率小于1; 区域2:椭圆切线斜率大于1。 扫描转

文档评论(0)

1112111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档