• 大小: 6.71MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-02
  • 语言: 其他
  • 标签: Opengl实例  

资源简介

大量的Opengl实例代码和exe文件,新手可以参考

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 

int Wwidth=500 Wheight=500;
int radius=100;

float sanglemanglehangle;
char timebuffer[9];
int secondminutehour;

void setTime();

void drawCircle();
void plotC(int x int y int cx int cy GLfloat * color);
void Bresenham_Circle_Algorithm(int cx int cy GLfloat * color);

void drawPoint();

void drawHour();
void drawMinute();
void drawSecond();

void display()
{
glClear(GL_COLOR_BUFFER_BIT);

drawCircle();
drawPoint();
drawHour();
drawMinute();
drawSecond();

glutSwapBuffers();
}

void timer(int value)
{
setTime();
glutPostRedisplay();
glutTimerFunc(500 timer 1);
}

void reshape(int w int h)
{
glViewport(00 w h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

if(w<=h)
gluOrtho2D(-radius radius -radius*h/w radius*h/w);
else
gluOrtho2D(-radius*w/h radius*w/h -radius radius);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}

int main(int argc char* argv [])
{
glutInit(&argc argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(Wwidth Wheight);
glutCreateWindow(“Clock“);
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutTimerFunc(500 timer 1);

glutMainLoop();

return 1;
}

void setTime()
{
_strtime(timebuffer);
hour=((int)(timebuffer[0]-‘0‘)*10+(int)(timebuffer[1]-‘0‘));
minute=((int)(timebuffer[3]-‘0‘)*10+(int)(timebuffer[4]-‘0‘));
second=((int)(timebuffer[6]-‘0‘)*10+(int)(timebuffer[7]-‘0‘));

sangle= (float)(90 - second*6);
mangle= (float)(90 - minute*6);
hangle= (float)(90 - (hour%12)*30);

}

void drawCircle()
{
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
GLfloat color[]={1.0 1.0 1.0};
glPointSize(2);
Bresenham_Circle_Algorithm(0 0 color);
glPointSize(1);
}

void plotC(int x int y int cx int cy GLfloat * color)
{
glColor3fv(color);
glBegin(GL_POINTS);
glVertex2f(cx+x cy+y);
glVertex2f(cx+x cy-y);
glVertex2f(cx-x cy+y);
glVertex2f(cx-x cy-y);
glVertex2f(cx+y cy+x);
glVertex2f(cx+y cy-x);
glVertex2f(cx-y cy+x);
glVertex2f(cx-y cy-x);
glEnd();
}
void Bresenham_Circle_Algorithm(int cx int cy GLfloat * color)
{
int x y d;
y=radius;
d=1-radius;
x=0;
while(x<=y){
plotC(xycxcy color);
if(d<0)
d+=2*x+3;
else{
d+=2*(x-y)+5;
y=y-1;
}
x=x+1;
}
}

void drawPoint()
{

glBegin(GL_QUADS);
glColor3f(1.0 0.6 0.0);
glVertex2f(-1 radius);
glVertex2f(1 radius);
glVertex2f(1 radius-5);
glVertex2f(-1 radius-5);

glVertex2f(-1 -(radius));
glVertex2f(1 -(radius));
glVertex2f(1 -(radius-5));
glVertex2f(-1 -(radius-5));

glVertex2f(radius-1);
glVertex2f(radius 1);
glVertex2f(radius-5 1);
glVertex2f(radius-5 -1);

glVertex2f(-(radius) -1);
glVertex2f(-(radius) 1);
glVertex2f(-(radius-5) 1);
glVertex2f(-(radius-5) -1);
glEnd();

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     198899  2014-11-18 22:02  图形学\01.jpg

     文件      11493  2014-11-18 22:04  图形学\02.jpg

     文件      83307  2014-11-18 22:05  图形学\03.jpg

     文件       3983  2014-10-31 23:18  图形学\Clock.c

     文件      41257  2013-12-09 21:11  图形学\Clock.exe

     文件       3114  2014-12-03 19:52  图形学\Exam206.cpp

     文件     188536  2014-10-19 20:21  图形学\Exam206.exe

     文件       7576  2014-10-06 09:34  图形学\Gentex.cpp

     文件     200822  2014-10-06 09:34  图形学\Gentex.exe

     文件       5096  2014-12-01 18:23  图形学\GLUT.CPP

     文件     188530  2014-10-07 21:36  图形学\GLUT.exe

     文件       2697  2014-12-01 18:24  图形学\OpenGL模型绘制、旋转与菜单交互.cpp

     文件     188507  2014-10-29 21:40  图形学\OpenGL模型绘制、旋转与菜单交互.exe

     文件       2059  2013-12-10 06:58  图形学\园环、球、五角星与旋转.cpp

     文件     204875  2014-10-31 23:29  图形学\园环、球、五角星与旋转.exe

     文件       2155  2012-04-27 21:00  图形学\图元描述\arraycube.c

     文件     192626  2014-09-14 01:49  图形学\图元描述\arraycube.exe

     文件       1089  2014-09-06 21:03  图形学\图元描述\Clip.cpp

     文件     188530  2014-09-06 21:03  图形学\图元描述\Clip.exe

     文件       1785  2014-09-06 05:05  图形学\图元描述\DrawCircle.cpp

     文件     204926  2014-09-06 04:46  图形学\图元描述\DrawCircle.exe

     文件       1322  2014-09-06 20:42  图形学\图元描述\Exam301.cpp

     文件     204920  2014-09-06 20:42  图形学\图元描述\Exam301.exe

     文件       2282  2014-09-06 16:28  图形学\图元描述\Exam406.cpp

     文件     188536  2014-09-06 16:31  图形学\图元描述\Exam406.exe

     文件        697  2014-09-10 03:38  图形学\图元描述\Example001.cpp

     文件     188542  2014-09-10 03:39  图形学\图元描述\Example001.exe

     文件        595  2014-09-10 03:42  图形学\图元描述\Example002.cpp

     文件     188542  2014-09-10 03:42  图形学\图元描述\Example002.exe

     文件        663  2014-09-10 03:48  图形学\图元描述\Example003.cpp

............此处省略62个文件信息

评论

共有 条评论

相关资源