计算机图形学 - 圆的中点生成算法验证
2016-10-18 14:48
274 查看
算法描述:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/01/4ebf5c357b65c0728c3220099c997833.gif)
圆的中点生成算法
如果我们构造函数 F(x,y)=x2+y2-R2,则对于圆上的点有F(x,y)=0,对于圆外的点有F(x,y)>0,对于圆内的点F(x,y)<0
。
与中点画线法一样,构造判别式:
d=F(M)=F(xp+1,yp-0.5)=(xp+1)2+(yp-0.5)2-R2
若d<0,则应取P1为下一像素,而且再下一像素的判别式为:
d=F(xp+2,yp-0.5)=(xp+2)2+(yp-0.5)2-R2=d+2xp+3
若d≥0,则应取P2为下一像素,而且下一像素的判别式为
d=F(xp+2,yp-1.5)=(xp+2)2+(yp-1.5)2-R2=d+2(xp-yp)+5
我们这里讨论的第一个像素是(0,R),判别式d的初始值为:
d0=F(1,R-0.5)=1.25-R
详细代码:计算机图形学
- Code 1
生成结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/01/4ebf5c357b65c0728c3220099c997833.gif)
圆的中点生成算法
如果我们构造函数 F(x,y)=x2+y2-R2,则对于圆上的点有F(x,y)=0,对于圆外的点有F(x,y)>0,对于圆内的点F(x,y)<0
。
与中点画线法一样,构造判别式:
d=F(M)=F(xp+1,yp-0.5)=(xp+1)2+(yp-0.5)2-R2
若d<0,则应取P1为下一像素,而且再下一像素的判别式为:
d=F(xp+2,yp-0.5)=(xp+2)2+(yp-0.5)2-R2=d+2xp+3
若d≥0,则应取P2为下一像素,而且下一像素的判别式为
d=F(xp+2,yp-1.5)=(xp+2)2+(yp-1.5)2-R2=d+2(xp-yp)+5
我们这里讨论的第一个像素是(0,R),判别式d的初始值为:
d0=F(1,R-0.5)=1.25-R
详细代码:计算机图形学
- Code 1
生成结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/01/38f616c5b9460c74c07dbe2829f1d15d.png)
相关文章推荐
- 计算机图形学 – 椭圆的中点生成算法
- 计算机图形学(二)中点画圆算法讲解与源代码
- 计算机图形学 学习笔记(一):概述,直线扫描转换算法:DDA,中点画线算法,Bresenham算法
- 计算机图形学(1)——直线生成算法的实现
- 计算机图形学—DDA直线生成算法
- 计算机图形学-基本图素的生成算法和图形填充
- 【计算机图形学】基本图形元素:直线的生成算法
- 计算机图形学(五)线段的中点分割裁剪算法讲解与源代码
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_3_椭圆生成算法
- 【计算机图形学】中点画圆算法和Bresenham画圆算法
- 【计算机图形学】基本图形元素:圆的生成算法
- 计算机图形学之中点画算法
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_4_中点椭圆算法(上)
- 计算机图形学第五章---基本图形生成算法
- 计算机图形学——直线生成算法
- 计算机图形学-直线的生成算法
- 【算法】计算机图形学的一些经典小题:判断点在多边形内,随机生成三角形内的点,判断两个矩形是否相交等
- 计算机图形学 - 球体、环、椭球体生成算法
- 计算机图形学 - 全斜率Bresenham直线生成算法
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_1_圆生成算法