码迷,mamicode.com
首页 > 编程语言 > 详细

计算机图形学 – 椭圆的中点生成算法

时间:2015-12-29 19:10:58      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:

算法描述:

  对于一般位置的椭圆, 例如技术分享, 可将中心平移到坐标原点, 确定好中心在原点的标准位置的椭圆像素点集后,再平移到技术分享位置,将问题转变为标准位置的椭圆的绘制问题。 

  如果椭圆的长轴和短轴方向不与坐标轴x 和y 平行,那么可以采用旋转坐标变换的方式, 同样将问题转变为标准位置的椭圆的绘制

技术分享

定义下面椭圆中点算法的判别式:

技术分享

  则:

  • 技术分享< 0,说明技术分享在椭圆边界内;
  • 技术分享= 0,说明技术分享在椭圆边界上;
  • 技术分享> 0,说明技术分享在椭圆边界外;

  由于椭圆的对称性, 这里只讨论第一象限椭圆弧的生成。

  在处理这段椭圆弧时, 进一步把它分为两部分: 上部分和下部分,以弧上斜率为- 1 的点作为分界。

  在上部分, 在x方向上取单位步长,确定下一像素的位置;

  在斜率小于-1的下部分, 在y方向取单位步长来确定下一像素的位置。

技术分享

而椭圆的中点生成过程类似于直线与圆的中点生成算法。

 

详细代码:Computer Graphics - code_1

生成结果:

技术分享

计算机图形学 – 椭圆的中点生成算法

标签:

原文地址:http://www.cnblogs.com/xd-g/p/5086722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!