⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rh.cpp

📁 好的例子
💻 CPP
字号:
// rh.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include<windows.h>
#include <GL/glut.h>
#include <gl/glaux.h>
void init(void) 
{
   GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };//定义材质的高光属性
  // GLfloat mat_shininess[] = { 50.0 };			//定义材质的高光反射强度
   GLfloat light_position[] = { -3.0, 3.0, -3.0, 0.0 };//定义光源的位置
   GLfloat mat_ambient[] = { 1.0, 0.0, 1.0, 1.0 };
   glClearColor(0.0, 0.0, 0.0, 0.0);		
   glShadeModel(GL_SMOOTH);				//光滑效果

	//定义材质
   glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
   //glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
   glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
//定义光源位置
   glLightfv(GL_LIGHT0, GL_POSITION, light_position);
//激活光源	
   glEnable(GL_LIGHTING);
   glEnable(GL_LIGHT0);
   //激活深度测试
glEnable(GL_DEPTH_TEST);


}
//显示回调函数,即为绘制函数,一般这个函数根据实际绘图需要,进行编写程序。
void display(void)
{
   glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//清除缓存
   glColor3f (1.0, 1.0, 1.0);		//设置颜色
    glPushMatrix();
   glLoadIdentity();
   gluLookAt(0,0,2,0,0,0,0,1,0);
   glTranslatef(-1.0,0.0,0.0);
   glRotatef(30,0,1,0);
    glutSolidCube(1);
   /*glEnable(GL_BLEND);
  glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
  //   这里是绘制命令 
   glColor4f(1.0,0.0,0.0,0.7);
   auxWireCube(1);
  // glRectf(0.25,0.4,0.75,0.9);
   glTranslatef(1.0,0.0,0.0);
   glColor4f(0.0,0.0,1.0,0.3);
   glutSolidSphere (1.0, 20, 16);
   //glRectf(0.4,0.1,0.9,0.6);
   
//	这里编写绘制程序
glFlush ();		//强制系统执行绘图命令
glDisable(GL_BLEND);*/
glFlush ();		//强制系统执行绘图命令
}

//重画回调函数  窗口大小发生变化时自动调用该函数
void reshape (int w, int h)
{
   glViewport (0, 0, (GLsizei) w, (GLsizei) h);
   glMatrixMode (GL_PROJECTION);
   glLoadIdentity();
   if (w <= h)
      glOrtho (-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w,
         1.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0);
   else
      glOrtho (-1.5*(GLfloat)w/(GLfloat)h,
         1.5*(GLfloat)w/(GLfloat)h, -1.5, 1.5, -10.0, 10.0);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
}
/* 键盘操作回调函数,即键盘操作时自动调用*/
void keyboard(unsigned char key, int x, int y)
{
   switch (key) 
{
      	case 27:
         	exit(0);
         	break;
   }
}
//主程序
int main(int argc, char** argv)
{
   glutInit(&argc, argv);	//初始化Glut库,是否能正常使用
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);//设置单缓存和RGB颜色模式
   glutInitWindowSize (480, 360); 				//设置窗口大小
   glutInitWindowPosition (100, 100);			//设置窗口左上角的位置
   glutCreateWindow ("Sample01");				//建立一个窗口
   init ();					
   glutDisplayFunc(display);   				//以下三个函数声明三个回调函数
   glutReshapeFunc(reshape);			
   glutKeyboardFunc(keyboard);
   glutMainLoop(); 						//进行入执行过程
   return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -