- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简单Opengl时钟时钟源代码 可以运行
#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,
文档评论(0)