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

代码片段和文件信息
#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
- 上一篇:wifi智能插座整个工程源文件
- 下一篇:基于图像处理的铁轨表面缺陷检测算法
相关资源
- 计算机图形学 边填充算法实现代码
- OpenGL参考手册
- 计算机图形学课设 画板
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 简易绘图程序(计算机图形学课程设
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 图形学集成程序dda、中点算法、多边
- 计算机图形实验(哈尔滨工程大学)
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 计算机图形学-全.rar
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- 警察抓小偷游戏 x86版
评论
共有 条评论