📄 rh.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 + -