资源简介

计算机图形学中采了用中点画圆的方法,程序已经实现了,可以放心下载

资源截图

代码片段和文件信息

#include 

class screenPt
{
public:
screenPt()
{
x = y = 0;
}
void setCoords(GLint xCoordValue GLint yCoordValue)
{
x = xCoordValue;
y = yCoordValue;
}
GLint getx() const
{
return x;
}
GLint gety() const
{
return y;
}
void incrementx()
{
x++;
}
void decrementy()
{
y--;
}
private:
GLint x y;
};
void setPixel(GLint xCoord GLint yCoord)
{
glBegin(GL_POINTS);
   glVertex2i(xCoord yCoord);
    glEnd();
}

void circleMidpoint(GLint xc GLint yc GLint radius)
{
screenPt circPt;
GLint p = 1 - radius;
circPt.setCoords(0 radius);
void circlePlotPoints(GLint GLint screenPt);
circlePlotPoints(xc yc circPt);
while (circPt.getx() < circPt.gety())
{
circPt.incrementx();
if (p < 0)
{
p += 2*circPt.getx() + 1;
}
else
{
circPt.decrementy();
p +=2*circPt.getx() - 2*circPt.gety() + 1; 
}
circlePlotPoints(xc yc circPt);
}
}

void circlePlotPoints(GLint xc GLint yc screenPt circPt)
{
setPixel(xc+circPt.getx() yc + circPt.gety());
setPixel(xc - circPt.getx() yc + circPt.gety());
setPixel(xc + circPt.getx() yc - circPt.gety());
setPixel(xc - circPt.getx() yc - circPt.gety());
setPixel(xc + circPt.gety() yc + circPt.getx());
setPixel(xc - circPt.gety() yc + circPt.getx());
setPixel(xc + circPt.gety() yc - circPt.getx());
setPixel(xc - circPt.gety() yc - circPt.getx());
}

void init()
{
glClearColor(0.0 0.0 0.0 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-200.0 200.0 -200.0 200.0);
}

void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0 0.0 0.0);
circleMidpoint(5 5 100);
glFlush();
}

int main(int argc char** argv)
{
glutInit(&argc argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(100 100);
glutInitWindowSize(400 400);
glutCreateWindow(“Midpoint algorithm circle“);
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     172130  2012-03-12 10:13  midCircle\Debug\midCircle.exe

     文件     194324  2012-03-12 10:13  midCircle\Debug\midCircle.ilk

     文件      11100  2012-03-12 10:13  midCircle\Debug\midCircle.obj

     文件     312500  2012-03-12 10:13  midCircle\Debug\midCircle.pch

     文件     336896  2012-03-12 10:13  midCircle\Debug\midCircle.pdb

     文件      33792  2012-03-12 10:13  midCircle\Debug\vc60.idb

     文件      45056  2012-03-12 10:13  midCircle\Debug\vc60.pdb

     文件       2024  2012-03-12 10:13  midCircle\midCircle.cpp

     文件       4320  2012-03-12 10:14  midCircle\midCircle.dsp

     文件        543  2012-03-12 10:12  midCircle\midCircle.dsw

     文件      33792  2012-03-12 10:14  midCircle\midCircle.ncb

     文件      48640  2012-03-12 10:14  midCircle\midCircle.opt

     文件        903  2012-03-12 10:13  midCircle\midCircle.plg

     目录          0  2012-03-12 10:13  midCircle\Debug

     目录          0  2012-03-12 10:14  midCircle

----------- ---------  ---------- -----  ----

              1196020                    15


评论

共有 条评论