#include <stdlib.h>
#include<GL/glut.h>
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
//#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置入口地址
int r=0;
int i;
void changeSize(int w, int h)
{
float ratio = 1.0* w / h;
glViewport(0, 0, w, h);//视区变换
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60,ratio,1,1000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0,0.0,5.0, 0.0,0.0,0.0,0.0f,1.0f,0.0f);//[-2,2]
}
void renderScene(void)
{
glClearColor(1.0, 1.0, 1.0, 0); // 设置刷新背景色
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//glColor3f(1.0,0.0,0.0);
if(i>0){
glPointSize(10);
glBegin(GL_POINTS);//GL_POINTS
glColor3f(1.0,0.0,0.0);
glVertex3f(1.0,-1.0,0.0);
glEnd();}
if(i>1){
glBegin(GL_LINES);//GL_LINES
glColor3f(0.0,0.0,0.0);
glVertex3f(1.0,-0.5,0.0);
glColor3f(0.0,1.0,0.0);
glVertex3f(0.0,0.0,0.0);
glEnd();}
if(i>2){
glBegin(GL_QUADS);//GL_QUADS
glColor3f(1.0,0.0,0.0);
glVertex3f(-0.5,-1.0,0.0);
glColor3f(0.0,1.0,0.0);
glVertex3f(-1.5,-1.0,0.0);
glColor3f(0.0,0.0,1.0);
glVertex3f(-1.5,0.0,0.0);
glColor3f(1.0,0.0,0.0);
glVertex3f(-0.5,0.0,0.0);
glEnd();}
if(i>3){
glBegin(GL_TRIANGLES);//GL_TRIANGLE
glColor3f(0.8,0.4,0.4);
glVertex3f(-0.8,0.5,0.0);
glColor3f(0.0,1.0,0.0);
glVertex3f(-1.5,0.6,0.0);
glColor3f(0.0,0.0,1.0);
glVertex3f(-0.8,0.8,0.0);
glEnd();}
if(i>4){
glBegin(GL_POLYGON);//GL_POLYGON
glColor3f(0.0,0.0,0.0);
glVertex3f(1.0,0.5,0.0);
glColor3f(0.0,1.0,0.0);
glVertex3f(2.0,0.5,0.0);
glColor3f(0.0,0.0,1.0);
glVertex3f(1.0,1.0,0.0);
glColor3f(0.0,0.0,1.0);
glVertex3f(2.0,1.0,0.0);
glColor3f(0.0,0.0,1.0);
glVertex3f(1.5,0.7,0.0);
glEnd();}
if(i>5){
glBegin(GL_LINE_STRIP);//GL_LINE_STRIP
glColor3f(1.0,0.0,0.0);
glVertex3f(-3.5,-1.0,0.0);
glColor3f(0.0,1.0,0.0);
glVertex3f(0.0,2.5,0.0);
glColor3f(0.0,0.0,1.0);
glVertex3f(1.5,-1.0,0.0);
glEnd();}
if(i>6){
glBegin(GL_LINE_LOOP);//GL_LINE_LOOP
glColor3f(0.0,0.0,0.0);
glVertex3f(2.8,2.8,0.0);
glColor3f(0.0,0.5,0.0);
glVertex3f(0.0,2.8,0.0);
glColor3f(0.0,0.0,1.0);
glVertex3f(1.8,1.5,0.0);
glEnd();}
glFlush();
glutSwapBuffers();
}
void keyboard( unsigned char key, int x, int y ) // Create Keyboard Function
{
switch ( key ) {
case 65:
glutFullScreen ( ); // Go Into Full Screen Mode
break; // Ready For Next Case
case 66:
glutReshapeWindow ( 800, 600 ); // Go Into A 500 By 500 Window
break; // Ready For Next Case
case 27: // When Escape Is Pressed...
exit ( 0 ); // Exit The Program
break; // Ready For Next Case
case 67:
i=1;
glutPostRedisplay(); //redraw
break;
case 68:
i=2;
glutPostRedisplay(); //redraw
break;
case 69:
i=3;
glutPostRedisplay(); //redraw
break;
case 70:
i=4;
glutPostRedisplay();//redraw
break;
case 71:
i=5;
glutPostRedisplay();//redraw
break;
case 72:
i=6;
glutPostRedisplay();//redraw
break;
case 73:
i=7;
glutPostRedisplay();//redraw
break;
default: // Now Wrap It Up
break;
}
//glutPostRedisplay();//redraw
}
void main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);//GLUT_SINGLE
glutInitWindowPosition(100,100);
glutInitWindowSize(800,600);
glutCreateWindow("glut framework");
glutDisplayFunc(renderScene);
glutKeyboardFunc( keyboard );
glutReshapeFunc(changeSize);
glutMainLoop();
}
没有合适的资源?快使用搜索试试~ 我知道了~
glut1.rar_GL_LINE_LOOP_lines_opengl GL_LINES
共13个文件
pdb:2个
dsw:1个
exe:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 61 浏览量
2022-09-24
14:25:05
上传
评论
收藏 202KB RAR 举报
温馨提示
opengl下编程绘制基本图形1. 分别实现GL_POINTS,GL_LINES,GL_POLYGON,GL_TRAINGLES,GL_QUADS,GL_LINE_STRIP,GL_LINE_LOOP等基本形状。
资源推荐
资源详情
资源评论
收起资源包目录
glut1.rar (13个子文件)
绘制基本图形实例
glut1.cpp 4KB
glut1.opt 53KB
glut1.dsw 533B
glut1.plg 244B
Debug
glut1.pdb 337KB
glut1.ilk 201KB
vc60.idb 33KB
glut1.obj 12KB
glut1.pch 333KB
vc60.pdb 44KB
glut1.exe 168KB
glut1.dsp 3KB
glut1.ncb 49KB
共 13 条
- 1
资源评论
钱亚锋
- 粉丝: 86
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功