太原批发瓷砖地方在哪:OpenGL基于DEV-C++怎么设置呀?

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 10:37:38
#include <GL/OPENGLSB.H>
#include <math.h>
#define GL_PI 3.1415f

static GLfloat xRot = 0.0f;
static GLfloat yRot = 0.0f;

void SpecialKeys(int key, int x, int y)
{
if(key == GLUT_KEY_UP)
xRot-= 5.0f;

if(key == GLUT_KEY_DOWN)
xRot += 5.0f;

if(key == GLUT_KEY_LEFT)
yRot -= 5.0f;

if(key == GLUT_KEY_RIGHT)
yRot += 5.0f;

if(key > 356.0f)
xRot = 0.0f;

if(key < -1.0f)
xRot = 355.0f;

if(key > 356.0f)
yRot = 0.0f;

if(key < -1.0f)
yRot = 355.0f;

// Refresh the Window
glutPostRedisplay();
}
void SetupRC()
{
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glColor3f(1.0f, 1.0f, 1.0f);
}

void ChangeSize(int w, int h)
{
GLfloat nRange = 100.0f;
if (h == 0)
h = 1;
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

if (w <= h)
glOrtho(-nRange, nRange, -nRange * h/w, nRange * h/w, -nRange, nRange);
else
glOrtho(-nRange * w/h, nRange * w/h, -nRange, nRange, -nRange, nRange);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void RenderScene(void)
{
GLfloat x, y, z, angle;
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
glRotatef(yRot, 0.0f, 1.0f, 1.0f);

glBegin(GL_POINTS);
z = -5.0f;
for (angle = 0.0f; angle <= (2.0f * GL_PI) * 1.0f; angle += 0.1)
{
x = 50.0f * sin(angle);
y = 50.0f * cos(angle);
glVertex3f (x, y, z);
z += 0.1f;
}
glEnd();
glPopMatrix();
glutSwapBuffers();

}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGB);
glutInitWindowSize(800,600);
glutInitWindowPosition(100, 100);
glutCreateWindow("Point");
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
glutSpecialFunc(SpecialKeys);
SetupRC();
glutMainLoop();
return 0;
}
以上程序在VC++运行没问题,但到了DEV-C++就出问题了。
编译前我将OpenGL的*.h文件都考到了DEV-C++的目录下了,GLUT32.DLL和GLUT32.LIB文件都考到了相应的目录下,但老是不对?在此我想问问应该怎样在这个平台上使用OpenGL呀?

答案:三毛黏过后,还是有缝的.