【OpenGL】OpenGL颜色立方体


使用OpenGL绘制RGB颜色立方体

  • 方向键旋转
  • 鼠标点击/拖拽

C++代码

#include 
#include 
using namespace std;

#define M_PI 3.1415926535898

GLfloat AngleX;
GLfloat AngleY;

static float c = M_PI / 180.0f;             //弧度和角度转换参数
static int du = 90, oldmy = -1, oldmx = -1; //du是视点绕y轴的角度,opengl里默认y轴是上方向
static float r = 15.0f, h = 0.0f;           //r是视点绕y轴的半径,h是视点高度即在y轴上的坐标

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();


    glPushMatrix();
    {
        // 这句话在后面,黑点绝对位置会变化
        gluLookAt(r*cos(c*du), h, r*sin(c*du), 0, 0, 0, 0, 1, 0); //从视点看远点,y轴方向(0,1,0)是上方向

        glRotatef(AngleX, 1.0f, 0.0f, 0.0f);
        glRotatef(AngleY, 0.0f, 1.0f, 0.0f);

        // 上表面
        glBegin(GL_POLYGON); // 绘制一个凸多边形,顶点1到n定义了这个多边形。
        glColor3ub((GLubyte)255, (GLubyte)255, (GLubyte)255);   //颜色设置为白色
        glVertex3f(50.0f, 50.0f, 50.0f);

        glColor3ub((GLubyte)255, (GLubyte)255, (GLubyte)0);     //颜色设置为黄色
        glVertex3f(0.0f, 50.0f, 50.0f);

        glColor3ub((GLubyte)255, (GLubyte)0, (GLubyte)0);       

你可能感兴趣的:(OpenGL,OpenGL,RGB,颜色立方体)