实现图元及属性的算法---圆的生成算法

本文深入探讨了Bresenham画圆算法的原理,包括如何避免平方根运算,以及中点圆算法的应用。文章详细解释了通过比较像素与圆的距离的平方来简化计算的过程,适合对计算机图形学感兴趣的读者。

圆的特性

  • 对于任意的圆点(x,y),这个距离关系可用笛卡尔坐标系中的勾股定理定义为:22d9c70ee38c3f623261e5380994cd1e3c7.jpg
  • 我们可以在圆斜率的绝对值大于1后,交换x和y来调整间距,但是这种方法增加了算法所需的计算量和处理过程。
  • 一种消除不等间距的方法是使用极坐标r和5c18dfedc03a05dba785911ae31e0972047.jpg来计算沿着圆周的点。以参数极坐标形式表示圆方程,可以得到方程组:b43054df318fe7c7f7f4131a93785513ca1.jpg
  • 7eced97d28c141dfbbcb916d82b139a9258.jpg
  • 68f9c14aaa06d525dd1ce44ba10a0f7aec9.jpg
  • 通过设定在每一取样步骤中寻找最接近圆周像素的决策参数,可以将光栅系统的Bresenham画线算法移植为画圆算法。然而,画圆方程是非线性的,计算像素与圆的距离必须进行平方根运算。Bresenham画圆算法则通过比较像素与圆的距离的平方而避免了平方根运算。

中点圆算法

  • f8dbb1bede04ef29ea91f14ef762bb04cda.jpg
  • 为了能够应用中点画圆算法,而我们定义了一个圆函数:
  • 150b97f884f060f1551586521c8068f3ca5.jpg
  • 5e953cd7d40bc298d0285eb01d286bf50ab.jpg
  • ad2aa3e99d58528284ea70825fd3bf83906.jpg
  • 0b643b4ac5a96d45c87bccfb38800277f25.jpg
  • b1c39f04ce66dbf5b7c4e4096bbbdc9b32b.jpg

转载于:https://my.oschina.net/liyangke/blog/2413896

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值