几何体的简单变换
#include <stdlib.h>
#include <gl/glut.h>
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
}
void draw_triangle(void)
{
glBegin (GL_LINE_LOOP);
glVertex2f(0.0, 25.0);
glVertex2f(25.0, -25.0);
glVertex2f(-25.0, -25.0);
glEnd();
}
// 绘制长方体 width,height,depth分别为长方体的长,高和深度
void DrawCube(GLfloat width, GLfloat height ,GLfloat depth)
{
GLfloat x = width/2, y = height/2, z = depth/2;
glBegin(GL_QUADS); // 绘制长方体的各面
// 前面(front)
glColor3f(0.5f, 1.0f, 0.5f); // 设置当前颜色(各对面颜色相同)
glVertex3f(-x, -y, z); // 前面四边形的左下顶点(正视)
glVertex3f( x, -y, z); // 前面四边形的右下顶点
glVertex3f( x, y, z); // 前面四边形的右上顶点
glVertex3f(-x, y, z); // 前面四边形的左上顶点
// 背面(back)
glVertex3f( x, -y, -z); // 背面四边形的左下顶点(正视)
glVertex3f(-x, -y, -z); // 背面四边形的右下顶点
glVertex3f(-x, y, -z); // 背面四边形的右上顶点
glVertex3f( x, y, -z); // 背面四边形的左上顶点
// 右侧面(right)
glColor3f(0.2f, 0.4f, 0.1f);
glVertex3f( x, -y, z); // 右侧面四边形的左下顶点(正视)
glVertex3f( x, -y, -z); // 右侧面四边形的右下顶点
glVertex3f( x, y, -z); // 右侧面四边形的右上顶点
glVertex3f( x, y, z); // 右侧面四边形的左上顶点
// 左侧面(left)
glVertex3f(-x, -y, -z); // 左侧面四边形的左下顶点(正视)
#include <stdlib.h>
#include <gl/glut.h>
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
}
void draw_triangle(void)
{
glBegin (GL_LINE_LOOP);
glVertex2f(0.0, 25.0);
glVertex2f(25.0, -25.0);
glVertex2f(-25.0, -25.0);
glEnd();
}
// 绘制长方体 width,height,depth分别为长方体的长,高和深度
void DrawCube(GLfloat width, GLfloat height ,GLfloat depth)
{
GLfloat x = width/2, y = height/2, z = depth/2;
glBegin(GL_QUADS); // 绘制长方体的各面
// 前面(front)
glColor3f(0.5f, 1.0f, 0.5f); // 设置当前颜色(各对面颜色相同)
glVertex3f(-x, -y, z); // 前面四边形的左下顶点(正视)
glVertex3f( x, -y, z); // 前面四边形的右下顶点
glVertex3f( x, y, z); // 前面四边形的右上顶点
glVertex3f(-x, y, z); // 前面四边形的左上顶点
// 背面(back)
glVertex3f( x, -y, -z); // 背面四边形的左下顶点(正视)
glVertex3f(-x, -y, -z); // 背面四边形的右下顶点
glVertex3f(-x, y, -z); // 背面四边形的右上顶点
glVertex3f( x, y, -z); // 背面四边形的左上顶点
// 右侧面(right)
glColor3f(0.2f, 0.4f, 0.1f);
glVertex3f( x, -y, z); // 右侧面四边形的左下顶点(正视)
glVertex3f( x, -y, -z); // 右侧面四边形的右下顶点
glVertex3f( x, y, -z); // 右侧面四边形的右上顶点
glVertex3f( x, y, z); // 右侧面四边形的左上顶点
// 左侧面(left)
glVertex3f(-x, -y, -z); // 左侧面四边形的左下顶点(正视)