<pre name="code" class="cpp"><span style="font-size:32px;color:#33ccff;"><strong>Bresham法绘制圆形</strong></span>
#include<GL/glut.h>
//Bresham法绘制圆形
void circle(int x,int y,int x0,int y0)
{ //绘制1/8圆和它的7个对称点
glVertex2f(x0+x,y0+y);
glVertex2f(x0+y,y0+x);
glVertex2f(x0+y,y0-x);
glVertex2f(x0+x,y0-y);
glVertex2f(x0-x,y0-y);
glVertex2f(x0-y,y0-x);
glVertex2f(x0-y,y0+x);
glVertex2f(x0-x,y0+y);
}
void Breseham(int x0,int y0,double r)
{
int x=0;
int y=(int)r; //第一个点坐标
int d=int(3-2*r);
glColor3f(0.0,1.0,0.0);
glBegin(GL_POINTS);
while(y>=x) //绘制的是1/8园,所以终点处x=y;
{
circle(x,y,x0,y0);
if(d<0)
d+=4*x+6;
else
{
d+=4*(x-y)&#