glBegin(GL_QUADS); glVertex3f( 1.0f, 1.0f,-1.0f); // 四边形的右上顶点 (顶面) glVertex3f(-1.0f, 1.0f,-1.0f); // 四边形的左上顶点 (顶面) glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左下顶点 (顶面) glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右下顶点 (顶面) glVertex3f( 1.0f,-1.0f, 1.0f); // 四边形的右上顶点(底面) glVertex3f(-1.0f,-1.0f, 1.0f); // 四边形的左上顶点(底面) glVertex3f(-1.0f,-1.0f,-1.0f); // 四边形的左下顶点(底面) glVertex3f( 1.0f,-1.0f,-1.0f); // 四边形的右下顶点(底面) glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右上顶点(前面) glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左上顶点(前面) glVertex3f(-1.0f,-1.0f, 1.0f); // 四边形的左下顶点(前面) glVertex3f( 1.0f,-1.0f, 1.0f); // 四边形的右下顶点(前面) glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的右上顶点(左面) glVertex3f(-1.0f, 1.0f,-1.0f); // 四边形的左上顶点(左面) glVertex3f(-1.0f,-1.0f,-1.0f); // 四边形的左下顶点(左面) glVertex3f(-1.0f,-1.0f, 1.0f); // 四边形的右下顶点(左面) glVertex3f( 1.0f, 1.0f,-1.0f); // 四边形的右上顶点(右面) glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的左上顶点(右面) glVertex3f( 1.0f,-1.0f, 1.0f); // 四边形的左下顶点(右面) glVertex3f( 1.0f,-1.0f,-1.0f); // 四边形的右下顶点(右面) glVertex3f( 1.0f,-1.0f,-1.0f); // 四边形的右上顶点(后面) glVertex3f(-1.0f,-1.0f,-1.0f); // 四边形的左上顶点(后面) glVertex3f(-1.0f, 1.0f,-1.0f); // 四边形的左下顶点(后面) glVertex3f( 1.0f, 1.0f,-1.0f); // 四边形的右下顶点(后面 glEnd();
#include "header.h" GLfloat rtri; GLfloat rquad; GLvoid ReSizeGLScene(GLsizei width, GLsizei height) { if (height==0) { height=1; } glViewport(0,0,width,height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } int InitGL(void) { glShadeModel(GL_SMOOTH); glClearColor(0.0f, 0.0f, 0.0f, 0.5f); glClearDepth(1.0f); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); return TRUE; } void DrawGLScene(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(-1.5f,0.0f,-6.0f); glRotatef(rtri,0.0f,1.0f,0.0f); glBegin(GL_TRIANGLES); glColor3f(1.0f,0.0f,0.0f); glVertex3f( 0.0f, 1.0f, 0.0f); glColor3f(0.0f,1.0f,0.0f); glVertex3f(-1.0f,-1.0f, 1.0f); glColor3f(0.0f,0.0f,1.0f); glVertex3f( 1.0f,-1.0f, 1.0f); glColor3f(1.0f,0.0f,0.0f); glVertex3f( 0.0f, 1.0f, 0.0f); glColor3f(0.0f,0.0f,1.0f); glVertex3f( 1.0f,-1.0f, 1.0f); glColor3f(0.0f,1.0f,0.0f); glVertex3f( 1.0f,-1.0f, -1.0f); glColor3f(1.0f,0.0f,0.0f); glVertex3f( 0.0f, 1.0f, 0.0f); glColor3f(0.0f,1.0f,0.0f); glVertex3f( 1.0f,-1.0f, -1.0f); glColor3f(0.0f,0.0f,1.0f); glVertex3f(-1.0f,-1.0f, -1.0f); glColor3f(1.0f,0.0f,0.0f); glVertex3f( 0.0f, 1.0f, 0.0f); glColor3f(0.0f,0.0f,1.0f); glVertex3f(-1.0f,-1.0f,-1.0f); glColor3f(0.0f,1.0f,0.0f); glVertex3f(-1.0f,-1.0f, 1.0f); glEnd(); glLoadIdentity(); glTranslatef(1.5f,0.0f,-7.0f); glRotatef(rquad,1.0f,1.0f,1.0f); glBegin(GL_QUADS); glColor3f(0.0f,1.0f,0.0f); glVertex3f( 1.0f, 1.0f,-1.0f); glVertex3f(-1.0f, 1.0f,-1.0f); glVertex3f(-1.0f, 1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f); glColor3f(1.0f,0.5f,0.0f); glVertex3f( 1.0f,-1.0f, 1.0f); glVertex3f(-1.0f,-1.0f, 1.0f); glVertex3f(-1.0f,-1.0f,-1.0f); glVertex3f( 1.0f,-1.0f,-1.0f); glColor3f(1.0f,0.0f,0.0f); glVertex3f( 1.0f, 1.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f); glVertex3f(-1.0f,-1.0f, 1.0f); glVertex3f( 1.0f,-1.0f, 1.0f); glColor3f(1.0f,1.0f,0.0f); glVertex3f( 1.0f,-1.0f,-1.0f); glVertex3f(-1.0f,-1.0f,-1.0f); glVertex3f(-1.0f, 1.0f,-1.0f); glVertex3f( 1.0f, 1.0f,-1.0f); glColor3f(0.0f,0.0f,1.0f); glVertex3f(-1.0f, 1.0f, 1.0f); glVertex3f(-1.0f, 1.0f,-1.0f); glVertex3f(-1.0f,-1.0f,-1.0f); glVertex3f(-1.0f,-1.0f, 1.0f); glColor3f(1.0f,0.0f,1.0f); glVertex3f( 1.0f, 1.0f,-1.0f); glVertex3f( 1.0f, 1.0f, 1.0f); glVertex3f( 1.0f,-1.0f, 1.0f); glVertex3f( 1.0f,-1.0f,-1.0f); glEnd(); rtri+=0.2f; rquad-=0.15f; glFlush(); } void rotate() { rtri+=0.2f; rquad-=0.15f; glutPostRedisplay(); } void mouse(int button,int state,int x,int y) { switch(button) { case GLUT_LEFT_BUTTON: if(GLUT_DOWN==state) { glutIdleFunc(rotate); } break; case GLUT_RIGHT_BUTTON: if(GLUT_DOWN==state) { //glutIdleFunc(0); } break; } } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowSize(640,480); glutCreateWindow("3D图形"); glutReshapeFunc(ReSizeGLScene); glutDisplayFunc(DrawGLScene); glutMouseFunc(mouse); InitGL(); glutMainLoop(); return 0; }
相关推荐
在这个“OpenGL:学习现代3D图形编程之二,玩转色彩 源码2”的教程中,我们将深入探讨如何使用OpenGL来操纵颜色,以创建丰富多样的视觉效果。 在3D图形编程中,色彩扮演着至关重要的角色,它能够影响到场景的氛围、...
总之,OpenGL游戏编程:3D三连棋源码的学习涵盖了OpenGL图形编程、Delphi应用开发、3D几何、矩阵变换、纹理映射以及游戏逻辑等多个方面,是学习3D图形编程和游戏开发的实用案例。通过这个项目,开发者可以深入理解...
OpenGL是计算机图形学中的一种广泛应用的图形库,用于在各种操作...通过源码1的学习,你可以深入了解这些概念并亲手实现它们,从而提升你的3D图形编程技能。不断实践和探索,你将能够创建出更加精美、逼真的3D世界。
画一个白色的三角形,详见我的博客
详细介绍参考我的博客
在"vs2010+opengl 3D图形变换"这个项目中,开发者使用了Visual Studio 2010作为集成开发环境(IDE),结合OpenGL进行3D图形编程。这个项目的核心在于对3D图形进行各种空间变换,包括旋转、平移和缩放,以及应用高级...
OpenGL是计算机图形学领域中广泛使用的图形库,用于在各种操作系统上创建2D和3D图形。本项目“OpenGL计算机图形学3D雪人”旨在通过应用...通过分析和理解这些源文件,开发者可以深入学习OpenGL编程和3D图形渲染技术。
OpenGL是用于创建2D和3D图形的强大编程库,它被广泛应用于游戏开发、科学可视化、工程设计等领域。...这个过程涉及到OpenGL的很多基础知识,包括几何绘制、光照处理、视图控制等,是学习3D图形编程的良好起点。
OpenGL ES 是一种针对嵌入式设备的图形处理接口,它基于桌面版的OpenGL标准,但进行了优化以适应移动设备的性能和资源限制。...通过学习和实践这个实例,开发者可以深入了解3D图形编程,并能创建出更复杂的3D视觉效果。
QT中的OpenGL学习-3D图形
这个程序特别适用于学习和理解OpenGL的基本概念以及如何在三维空间中进行图形绘制。以下是对该实验代码的主要知识点的详细说明: 1. **OpenGL基础知识**:OpenGL是一个跨语言、跨平台的图形库,用于渲染二维、三维...
这个“OpenGL.rar”压缩包显然包含了关于如何使用OpenGL进行3D图形绘制和旋转的教学资料,非常适合那些刚开始接触这个领域的学习者。 OpenGL是一个跨语言、跨平台的编程接口,它的设计目标是提供一种高效的方法来...
详细介绍见我的博客
这个"OpenGL的基本图形"教程可能是针对初学者的,旨在介绍如何在Visual C++ 6.0环境下使用OpenGL创建基本的3D图形。下面我们将深入探讨OpenGL的一些核心概念、特性以及与VC6.0的结合使用方法。 1. **OpenGL简介**:...
OpenGL和Direct3D是两种广泛使用的图形编程接口,它们允许开发者创建复杂的3D图形和实时渲染应用程序。在“OpenGL Direct3D 撰写的各种3D图形算法演示”中,我们可以期待深入理解这两种技术的核心原理以及如何利用...
一个VC OpenGL API实例:旋转的彩色3D立方体,在窗口缩放的过程中,3D立方体会自动旋转,改变角度,虽然很简单,但可学习一下OpenGL API在VC 中的用法。
OpenGL是一种开放源代码的图形库,它为程序员提供了一种跨平台的方式来创建高性能的2D和3D图形。OpenGL在C++中广泛使用,但在C#编程环境中,开发者通常会利用封装库来调用OpenGL的功能。标题提到的"C#版的OpenGL...
OpenGL是计算机图形学中的一个强大库,用于生成2D、3D图像,广泛应用于游戏开发、科学可视化和工程设计等领域。3D图形展示是OpenGL的...每个示例都是一个宝贵的学习资源,可以帮助你快速掌握和应用OpenGL 3D图形技术。
OpenGL是一种强大的图形库,用于创建2D和3D图形,被广泛应用于游戏开发、科学可视化、工程设计等领域。本资源包含的是关于如何在C#环境中使用OpenGL进行3D动画编程的相关示例。以下是对这些知识点的详细解释: 1. *...
OpenGL是计算机图形学中的一个强大的库,用于在各种操作系统上创建2D和3D图形。在本案例中,`(vc6.0)opengl小程序:clock` 是一个使用Microsoft Visual C++ 6.0(简称VC6.0)编译器开发的Windows应用程序,它展示了...