Bresenham画圆算法
2013-12-23 11:31
239 查看
Bresenham画圆算法:
假设我们要画的圆是原点2为(0,0),半径为R的一个圆,现在通过Bresenham算法画出它的四分之一圆,然后根据圆的对称性扫描出其他对称部分。
设一个距离函数,D(x,y)= x^2 + y^2 –R^2 ,当点在圆上的时候距离函数为0.
然后对横轴的点进行扫描,每个点算出使得D(x,y)为0的y值。因为要取整,所以最后结果有两种可能,通过一个变量来决定。如下图
![](http://img.blog.csdn.net/20131223113123171?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjk5OTQyNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
变量为vari = M – y,若为负,则取E点,否则取SE点。
假设我们要画的圆是原点2为(0,0),半径为R的一个圆,现在通过Bresenham算法画出它的四分之一圆,然后根据圆的对称性扫描出其他对称部分。
设一个距离函数,D(x,y)= x^2 + y^2 –R^2 ,当点在圆上的时候距离函数为0.
然后对横轴的点进行扫描,每个点算出使得D(x,y)为0的y值。因为要取整,所以最后结果有两种可能,通过一个变量来决定。如下图
变量为vari = M – y,若为负,则取E点,否则取SE点。
相关文章推荐
- 内存机制的建立
- iOS arc设置
- oracle 触发器详解
- 图片缩略图
- 自做算法导论第一章练习题
- LVM使用手册详解
- linux解压 tar命令
- linux解压 tar命令
- 《视频解密》中文版(第四版)第九章NTSC和PAL数字编码和解码(第三部分)
- Animation
- Hibernate的访问类型access 属性
- Linux源码阅读:以后怎么看源码的思考
- 协议
- 微软BI 之SSAS 系列 - 基于雪花模型的维度设计
- [转载]Android 编译环境 build/envsetup.sh分析
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- 15分钟学会使用Git和远程代码库
- Linux Epoll介绍和程序实例
- Eclipse导入Android项目的正确方法
- Start_Kernel之一 ------勇敢的猜想和胡言乱语