資源簡介
計算機圖形學實驗【DDA;中點線,圓,橢圓】(OpenGL實現)
代碼片段和文件信息
#include?“GL/glut.h“
#include?“GL/glu.h“
#include?“GL/gl.h“
#include?“string.h“
#include?“sstream“
#include?“assert.h“
#include?“iostream.h“
static?const?int?QUIT_VALUE(99);
GLuint?listID;
void?Bresenham(int?x0int?y0int?x1int?y1)?
{
x0=x0*100;
y0=y0*100;
x1=x1*100;
y1=y1*100;
float?dxdyadd1add2p0xym;
int?k;
dx=x1-x0;
dy=y1-y0;
m=dy/dx;
if(m>1)
{
p0=2*dx-dy;
add1=2*(dx-dy);
add2=2*dx;
}
else?if(m>=0)
{
p0=2*dy-dx;
add1=2*(dy-dx);
add2=2*dy;
}
else?if(m>-1)
{
p0=2*dy+dx;
add1=2*(dy+dx);
add2=2*dy;
}
else
{
p0=2*dx+dy;
add1=2*(dx+dy);
add2=2*dx;
}
x=x0y=y0;
glColor3f(110);
glBegin(GL_POINTS);
cout<<“直線的Bresenham算法:“< glVertex2f(x/1000y/1000);
if(m>1)
for(k=0;k {??
if(p0>0)
{
p0+=add1;
x++;
y++;
}
else
{
p0+=add2;
y++;
}
glVertex2f(x/1000y/1000);
}
else?if(m>0)
for(k=0;k {
if(p0>0)
{
p0+=add1;
x++;
y++;
}
else
{
p0+=add2;
x++;
}
glVertex2f(x/1000y/1000);
}
else?if(m>-1)
for(k=0;k {
if(p0>0)
{
p0+=add2;
x++;
y--;
}
else
{
p0+=add1;
x++;
}
glVertex2f(x/1000y/1000);
}
else
{
for(k=0;k {??
if(p0>0)
{
p0+=add1;
x++;
y--;
}
else
{
p0+=add2;
y--;
}
glVertex2f(x/1000y/1000);
}
}
glEnd();
}
static?void?display()
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.f0.f-4.f);
glCallList(listID);
glutSwapBuffers();
assert(glGetError()==GL_NO_ERROR);
}
static?void?reshape(int?wint?h)?
{
glViewport(00wh);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(50.(double)w/(double)h1.10.);
glMatrixMode(GL_MODELVIEW);
assert(glGetError()==GL_NO_ERROR);
}
static?void?mainMenuCB(int?value)?
{
if(value==QUIT_VALUE)
exit(0);
}
static?void?init()
{
glDisable(GL_DITHER);
std::string?ver((const?char*)?glGetString(GL_VERSION));
assert(!ver.empty());
std::istringstream?verStream(ver);
int?majorminor;
char?dummySep;
verStream>>major>>dummySep>>minor;
const?bool?useVertexArrays=((major>=1)&&(minor>=1));
const?GLfloat?data[]={-1.f-1.f0.f1.f-1.f0.f0.f1.f0.f?};
if(useVertexArrays)?
{
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3GL_FLOAT0data);
}
listID=glGenLists(1);
glNewList(listIDGL_COMPILE);
glBegin(GL_LINES);
glColor3f(111);
glVertex3f(0.0f?0.0f?0.0f);
glVertex3f(-3.0?0.0f?0.0f);
glVertex3f(0.0f?0.0f?0.0f);
glVertex3f(3.0?0.0f?0.0f);
glVertex3f(0.0f?0.0f?0.0f);
glVertex3f(0.0?2.0f?0.0f);
glVertex3f
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-11-01?23:52??圖形學實驗\
?????文件????????3689??2013-10-30?15:32??圖形學實驗\Bresenham直線.cpp
?????文件????????3487??2013-10-30?22:33??圖形學實驗\Bresenham直線.dsp
?????文件?????????534??2013-10-30?23:19??圖形學實驗\Bresenham直線.dsw
?????文件???????41984??2013-10-30?23:19??圖形學實驗\Bresenham直線.ncb
?????文件???????48640??2013-10-30?23:19??圖形學實驗\Bresenham直線.opt
?????文件?????????260??2013-10-30?23:05??圖形學實驗\Bresenham直線.plg
?????文件????????2717??2013-10-29?22:29??圖形學實驗\DDA直線.cpp
?????文件????????3415??2013-10-29?22:27??圖形學實驗\DDA直線.dsp
?????文件?????????522??2013-10-29?22:29??圖形學實驗\DDA直線.dsw
?????文件???????41984??2013-10-29?22:29??圖形學實驗\DDA直線.ncb
?????文件???????48640??2013-10-29?22:29??圖形學實驗\DDA直線.opt
?????文件????????1167??2013-10-29?22:29??圖形學實驗\DDA直線.plg
?????目錄???????????0??2013-11-01?23:52??圖形學實驗\Debug\
?????文件??????528478??2013-10-30?15:32??圖形學實驗\Debug\Bresenham直線.exe
?????文件??????772320??2013-10-30?15:32??圖形學實驗\Debug\Bresenham直線.ilk
?????文件??????246646??2013-10-30?15:32??圖形學實驗\Debug\Bresenham直線.obj
?????文件?????2329492??2013-10-30?15:13??圖形學實驗\Debug\Bresenham直線.pch
?????文件?????1065984??2013-10-30?15:32??圖形學實驗\Debug\Bresenham直線.pdb
?????文件??????524376??2013-10-29?22:29??圖形學實驗\Debug\DDA直線.exe
?????文件??????771908??2013-10-29?22:29??圖形學實驗\Debug\DDA直線.ilk
?????文件??????253238??2013-10-29?22:29??圖形學實驗\Debug\DDA直線.obj
?????文件?????5655688??2013-10-14?17:34??圖形學實驗\Debug\DDA直線.pch
?????文件?????1065984??2013-10-29?22:29??圖形學實驗\Debug\DDA直線.pdb
?????文件??????516191??2013-10-14?17:27??圖形學實驗\Debug\EllipsePoints.exe
?????文件??????746684??2013-10-14?17:27??圖形學實驗\Debug\EllipsePoints.ilk
?????文件??????251129??2013-10-14?17:27??圖形學實驗\Debug\EllipsePoints.obj
?????文件?????2345880??2013-10-12?13:01??圖形學實驗\Debug\EllipsePoints.pch
?????文件?????1025024??2013-10-14?17:27??圖形學實驗\Debug\EllipsePoints.pdb
?????文件??????508000??2013-10-14?17:18??圖形學實驗\Debug\MIdPointCircle.exe
?????文件??????733628??2013-10-14?17:18??圖形學實驗\Debug\MIdPointCircle.ilk
............此處省略56個文件信息
評論
共有 條評論