glRotatef(quard,x,y,z); | 旋转函数 | |
quard | 旋转角度 | |
x,y,z | 绕着(x,y,z)轴旋转 |
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, 0.0f);
glColor3f(0.0f,0.0f,1.0f);
glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();
glLoadIdentity();
glTranslatef(1.5f,0.0f,-6.0f);
glRotatef(rquad,1.0f,0.0f,0.0f);
glColor3f(0.5f,0.5f,1.0f);
glBegin(GL_QUADS);
glVertex3f(-1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f,-1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f);
glEnd();
#include "header.h" GLfloat rtri; GLfloat rquad; void 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, 0.0f); glColor3f(0.0f,0.0f,1.0f); glVertex3f( 1.0f,-1.0f, 0.0f); glEnd(); glLoadIdentity(); glTranslatef(1.5f,0.0f,-6.0f); glRotatef(rquad,1.0f,0.0f,0.0f); glColor3f(0.5f,0.5f,1.0f); glBegin(GL_QUADS); glVertex3f(-1.0f, 1.0f, 0.0f); glVertex3f( 1.0f, 1.0f, 0.0f); glVertex3f( 1.0f,-1.0f, 0.0f); glVertex3f(-1.0f,-1.0f, 0.0f); glEnd(); 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("矢量图形旋转"); glutReshapeFunc(ReSizeGLScene); glutDisplayFunc(DrawGLScene); glutMouseFunc(mouse); InitGL(); glutMainLoop(); return 0; }
相关推荐
首先,OpenGL是一个跨语言、跨平台的编程库,用于渲染2D、3D矢量图形。它不直接处理窗口、按钮等用户界面元素,而是专注于图形渲染。在Windows环境下,Visual Studio是一款常用的集成开发环境(IDE),支持C++和...
在计算机图形学中,OpenGL是一个强大的跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。本实验主要探讨的是如何使用OpenGL实现正方体围绕一个固定点(球心)进行旋转,确保其始终以球心为视线方向进行平滑的3D...
8. **图形库和框架**:开发者可能会使用现有的图形库,如OpenGL、DirectX、SVG.js或Paper.js等,源码会展示如何集成和利用这些库来创建复杂的矢量图形应用。 通过研究这些源码,你可以深入了解矢量图形系统的工作...
矢量图形系统开发是计算机图形学的一个重要领域,它涉及到...通过阅读提供的“矢量图形系统开发与编程.pdf”书籍,结合配套的“书中代码”,开发者可以系统地学习并实践这些知识,从而掌握矢量图形系统开发的核心技能。
通过研究这个源代码,开发者不仅可以学习到C++编程技术,还能深入理解矢量图形的原理和实现方法,这对于图形编程和游戏开发等领域都是非常有益的。同时,这个项目也可以作为一个起点,进一步扩展为功能更全面的矢量...
OpenGL(Open Graphics Library)是一种跨语言、跨平台的应用程序编程接口(API),用于渲染2D和3D矢量图形。OpenGL广泛应用于计算机图形学领域,包括视频游戏、模拟、计算机辅助设计等领域。 如果要详细说明“3D...
1. **OpenGL基础**:OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。它提供了一系列函数调用来绘制几何形状,管理状态,以及处理图像和颜色。 2. **鼠标事件处理**:在OpenGL中,鼠标事件处理通常...
OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。它提供了大量的函数和状态机来控制图形的绘制过程。在VC中,我们通常会借助GLUT(OpenGL Utility Toolkit)库来简化窗口管理、用户输入处理等任务。...
OpenGL(Open Graphics Library)是一种跨语言、跨平台的应用程序接口(API),用于渲染2D和3D矢量图形。它是图形编程领域中最广泛使用的API之一,被广泛应用于游戏开发、虚拟现实、增强现实等多个领域。 #### 2. ...
OpenGL是开放图形库(Open Graphics Library)的缩写,它是一种跨语言、跨平台的应用程序编程接口(API),用于渲染2D、3D矢量图形。OpenGL被广泛应用于游戏开发、科学可视化、虚拟现实等领域。在游戏开发中,OpenGL...
总的来说,开发矢量图形系统涉及的知识点包括但不限于:VC编程基础、图形库的使用(如OpenGL或Direct2D)、矢量图形数据格式解析、GIS坐标系统与投影、图形用户界面设计、图形渲染优化以及持续的学习和资源获取。...
OpenGL(Open Graphics Library)是一个跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。它是许多应用软件、游戏开发、科学可视化工具的基础。"OpenGL书"通常是指那些详细阐述OpenGL编程技术的书籍,它们可以...
实验主要借助于**OpenGL**这一强大的图形库,让学生在**VC++**编程环境中实现对几何图形的多种变换,包括但不限于平移、缩放、旋转等。 #### 实验目标与内容 实验的目标十分明确: 1. **掌握基础知识**:学生需...
1. OpenGL基本概念:OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。它由一系列预先定义好的函数组成,开发者可以通过调用这些函数来绘制复杂的图形。 2. C++与OpenGL结合:C++是一种通用的编程...
在计算机图形学中,二维和三维图形的几何变换是至关重要的概念,特别是在使用OpenGL这样的图形库进行编程时。OpenGL是一个跨语言、跨平台的编程接口,用于生成静态和动态的二维、三维图像。本资源提供了支持多种几何...
OpenGL是一种跨语言、跨平台的应用程序编程接口(API),用于渲染2D和3D矢量图形。它由Khronos Group维护,广泛应用于游戏开发、科学可视化、虚拟现实等领域。OpenGL通过图形管道工作,数据经过一系列的处理阶段,...
这个程序可能包含了创建、编辑和显示矢量图形的基本功能,如绘制直线、曲线、形状,以及变换(如旋转、缩放、平移)和颜色填充等操作。 在源代码中,我们可以期待看到GDI(Graphics Device Interface)或者更现代的...
2. **OpenGL或GDI+库**:Visual C++可以使用OpenGL或GDI+图形库来实现矢量图形的绘制。OpenGL是一种跨语言、跨平台的编程接口,用于生成2D和3D图像;GDI+则是Windows API的一部分,用于在Windows上进行高级图形绘制...