文档详情

简单Opengl时钟时钟源代码 可以运行.doc

发布:2017-12-09约3.27千字共4页下载文档
文本预览下载声明
#pragma comment(lib, glut32.lib) #pragma comment(lib, glu32.lib) #pragma comment(lib, opengl32.lib) #include GL/glut.h #includemath.h #define PI 3.14159 GLfloat m_rotAngle=0.0; void Display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLineWidth(5); GLfloat i,angle; GLint circle_points = 100; GLint circle_point = 60; glBegin(GL_LINE_LOOP); //绘制闹钟的外圆 for (i = 0; i circle_points; i++) { angle = 2*PI*i/circle_points; glVertex2f(100*cos(angle), 100*sin(angle)); } glEnd(); glBegin(GL_LINE_LOOP); //绘制原点小圆 for (i = 0; i circle_points; i++) { angle = 2*PI*i/circle_points; glVertex2f(cos(angle), sin(angle)); } glEnd(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glPointSize(1); glBegin(GL_POINTS); //绘制秒针刻度 for (i = 0; i circle_point; i++) { angle = 2*PI*i/circle_point; glVertex2f(95*cos(angle), 95*sin(angle)); } glEnd(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glPointSize(5); glBegin(GL_POINTS); //绘制时针刻度 for (i = 0; i 12; i++) { angle = 2*PI*i/12; glVertex2f(95*cos(angle), 95*sin(angle)); } glEnd(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glColor3f(1.f,1.f,0.f); glPushMatrix(); //绘制秒针 glRotatef(m_rotAngle, 0.0f, 0.0f, 1.0f); glTranslatef(0.0f, 10.0f, 0.0f); glBegin(GL_TRIANGLES); glVertex3f(0, -100, 0); glVertex3f(1, 0, 0); glVertex3f(-1, 0, 0); glEnd(); glPopMatrix(); //绘制分针 glColor3f(1.f,0.f,0.f); glPushMatrix(); glRotatef(m_rotAngle/60, 0.0f, 0.0f, 1.0f); glTranslatef(0.0f, 10.0f, 0.0f); glBegin(GL_TRIANGLES); glVertex3f(0, -80, 0); glVertex3f(1, 0, 0); glVertex3f(-1, 0, 0); glEnd(); glPopMatrix(); glColor3f(0.f,0.f,1.f); glPushMatrix(); //绘制时针 glRotatef(m_rotAngle/3600, 0.0f,
显示全部
相似文档