`
tiankefeng0520
  • 浏览: 147019 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

OpenGL学习三:绘制矢量图形模型

 
阅读更多

glBegin(GL_TRIANGLES);
  glVertex3f( 0.0f, 1.0f, 0.0f);
  glVertex3f(-1.0f,-1.0f, 0.0f);
  glVertex3f( 1.0f,-1.0f, 0.0f);
 glEnd();

 

begin end 中间是构成矢量图形的点

 

#define GL_POINTS                         0x0000
#define GL_LINES                          0x0001
#define GL_LINE_LOOP                      0x0002
#define GL_LINE_STRIP                     0x0003
#define GL_TRIANGLES                      0x0004
#define GL_TRIANGLE_STRIP                 0x0005
#define GL_TRIANGLE_FAN                   0x0006
#define GL_QUADS                          0x0007
#define GL_QUAD_STRIP                     0x0008
#define GL_POLYGON                        0x0009

#include "header.h"

GLvoid ReSizeGLScene(GLsizei width, GLsizei height)	
{
	if (height==0)									
	{
		height=1;									
	}

	glViewport(0,0,width,height);					

	glMatrixMode(GL_PROJECTION);					
	glLoadIdentity();							

	
	gluPerspective(25.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);					
	glBegin(GL_TRIANGLES);								
		glVertex3f( 0.0f, 1.0f, 0.0f);				
		glVertex3f(-1.0f,-1.0f, 0.0f);					
		glVertex3f( 1.0f,-1.0f, 0.0f);				
	glEnd();										
	glTranslatef(3.0f,0.0f,0.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();								
}


int main(int argc, char** argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
	glutInitWindowSize(640,480);
	glutCreateWindow("2D图形");
	glutReshapeFunc(ReSizeGLScene);
	glutDisplayFunc(DrawGLScene);

	InitGL();
	glutMainLoop();
	return 0;
}

 

  • 大小: 2 KB
分享到:
评论

相关推荐

    c# opengl 绘制三维球型

    OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。它提供了大量的函数和状态机来控制图形的渲染过程,如顶点、颜色、纹理等。在C#中使用OpenGL,我们需要一个库作为桥梁,CSGL就是这样的一座桥梁,它...

    opengl.rar_OPENgl 管道_opengl绘制_opengl绘制管道_管道绘制

    OpenGL,全称OpenGL图形程序接口,是一种用于渲染2D、3D矢量图形的标准,广泛应用于游戏开发、科学可视化和工程模拟等领域。在本压缩包文件中,我们重点关注如何使用OpenGL来绘制管道,特别是U型口的实现。 OpenGL...

    C++实现利用OpenGL实现三维绘图

    在计算机图形学领域,OpenGL是一种跨语言、跨平台的编程接口,用于渲染2D和3D矢量图形。本教程将深入探讨如何使用C++与OpenGL结合,来创建和展示三维图形。首先,我们需要理解OpenGL的基本概念和C++的基础知识。 1....

    OpenGL图形绘制.doc

    - 学习如何使用OpenGL绘制点、线、面等基本几何元素。 - 了解OpenGL中颜色模型的设定方法,例如使用`glColor3f()`函数来指定颜色。 - 掌握不同的绘制模式,如`GL_POINTS`、`GL_LINE_STRIP`、`GL_TRIANGLES`等。 ...

    《矢量图形系统开发与编程》配套源码

    2. **绘图算法**:绘制矢量图形涉及到一系列算法,如直线和曲线的插值算法、平滑处理、抗锯齿算法等。源码会展示如何利用这些算法进行精确绘图,确保图形的平滑和精细。 3. **图形交互**:用户与图形的交互,如鼠标...

    OpenGl.rar_opengl_opengl 2d 曲线_opengl 曲线_opengl 绘制_opengl绘制曲线

    OpenGL,全称OpenGL图形编程接口,是用于渲染2D、3D矢量图形的跨语言、跨平台的...通过学习和实践这个例子,开发者不仅可以掌握如何用OpenGL绘制曲线,还能提升对图形渲染过程的理解,为今后的图形项目打下坚实的基础。

    矢量图形系统开发

    3. **绘图算法**:为了在屏幕上绘制矢量图形,我们需要了解如描边、填充、渐变和阴影等绘图算法。这些算法决定了图形的外观和质感。 4. **交互与编辑**:用户通常需要能够实时编辑图形,如改变形状、移动元素或调整...

    qt+opengl 实现多窗口三维图形变换

    Qt是一个跨平台的应用程序开发框架,广泛用于GUI应用,而OpenGL则是一种用于渲染2D、3D矢量图形的低级编程接口。通过这两者的结合,我们可以创建出动态的、交互式的三维图形应用程序。 首先,我们需要理解Qt中的...

    OpenGL中绘制太阳,地球,月亮的运动模型

    在计算机图形学领域,OpenGL是一种广泛使用的跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。本项目聚焦于使用OpenGL来创建一个动态的天文模型,模拟太阳、地球和月亮的运动。这个模型对于教育、演示天文学原理...

    计算机图形学OpenGL版(上).pdf

    OpenGL(Open Graphics Library)是一个跨语言、跨平台的应用程序编程接口(API),用于渲染2D和3D矢量图形。图形学的知识点广泛且复杂,包含但不限于基础图形学概念、图形管线、渲染技术、着色器、光照模型、纹理...

    OpenGL三维图形程序设计.zip

    OpenGL是一种跨语言、跨平台的应用程序编程接口(API),用于渲染2D、3D矢量图形。它是计算机图形学中的一个重要工具,广泛应用于游戏开发、科学可视化、虚拟现实等领域。本教程将带你入门OpenGL,了解其基本接口和...

    OpenGL源代码:oglwrapperclass_demo

    5. **OpenGL编程**: OpenGL是一种跨语言、跨平台的图形库,用于渲染2D和3D矢量图形。开发者可能在`TestGL`类中实现了OpenGL的基本绘图函数,如`glBegin`、`glEnd`、`glVertex`等,以及更现代的顶点数组和顶点缓冲...

    OpenGL卡通人脸绘制

    在计算机图形学领域,OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。这个课程设计实验旨在帮助学习者掌握基本的OpenGL编程技巧,同时探索更高级的技术如橡皮条技术。 首先,我们要了解OpenGL的...

    矢量图形系统开发与编程

    读者将了解到如何高效地计算和绘制矢量图形,以及如何优化图形的显示性能。 在编程方面,书中涵盖了图形API(应用程序接口)的使用,如SVG(可缩放矢量图形)和OpenGL等。SVG是一种基于XML的矢量图形语言,常用于...

    OpenGL实现的简单机器人绘制

    OpenGL(Open Graphics Library)是一种用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。它使用一种特殊的状态机来控制图形渲染,并且通过一系列函数调用来实现复杂的图形操作。 #### OpenGL在...

    OpenGL光照交互坦克模型

    1. OpenGL:OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。它由多个固定功能的阶段组成,如顶点处理、光照计算、纹理贴图等,为开发者提供了丰富的图形绘制能力。 2. 可交互性:在OpenGL中实现可...

    vc绘图:gis绘图程序(简单矢量图形绘制).rar

    在给定的“vc绘图:gis绘图程序(简单矢量图形绘制).rar”压缩包中,我们可以推测其内容可能包含一个使用VC++(Visual C++)编写的GIS绘图应用程序,该程序能够绘制简单的矢量图形。VC++是一个强大的Windows平台...

    VC++下用opengl绘制彩色旋转金字塔

    OpenGL是跨平台的图形应用编程接口(API),用于生成二维和三维矢量图形。 OpenGL提供了一组API函数,允许开发者创建高质量的、交互式的三维图形。 二、VC++下使用OpenGL绘制彩色旋转金字塔 在VC++中使用OpenGL...

Global site tag (gtag.js) - Google Analytics