- 浏览: 53000 次
- 性别:
- 来自: 湖南
最新评论
首先看一个简单的例子:
在上面的例子,透露着一个简单的OpenGL操作框架:
其实以上的例子来自于《计算机图形学——用OpenGL实现(第2版)》的内容,但是在原来的程序中,使用的是glut函数,即来自于OpenGL的实用工具库。但是在VC++中,并不自带此辅助库,但在它的辅助库中,有相应的aux函数,因此,上例使用的都是辅助库中的aux函数。
1 #include <windows.h>
2 #include <math.h>
3 #include <gl/gl.h>
4 #include <gl/glu.h>
5 #include <gl/glaux.h>
6
7 const int screenWidth = 640;
8 const int screenHeight = 480;
9 GLdouble A, B, C, D;
10
11 void myInit(void)
12 {
13 glClearColor(1.0, 1.0, 1.0, 0.0);
14 glColor3f(0.0f, 0.0f, 0.0f);
15 glPointSize(2.0);
16 glMatrixMode(GL_PROJECTION);
17 glLoadIdentity();
18 gluOrtho2D(0.0, (GLdouble)screenWidth, 0.0, (GLdouble)screenHeight);
19 A = screenWidth / 4.0;
20 B = 0.0;
21 C = D = screenHeight / 2.0;
22 }
23
24 void myDisplay(void)
25 {
26 glClear(GL_COLOR_BUFFER_BIT);
27 glBegin(GL_POINTS);
28 for(GLdouble x=0; x<4.0; x+=0.005)
29 {
30 GLdouble func = exp(-x) * cos(2 * 3.14159265 * x);
31 glVertex2d(A * x + B, C * func + D);
32 }
33 glEnd();
34 glFlush();
35 }
36
37 void main(int argc, char** argv)
38 {
39 auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
40 auxInitPosition(0, 0, 500, 500);
41 auxInitWindow("simple");
42 myInit();
43 auxMainLoop((AUXMAINPROC)myDisplay);
44 }
运行结果如下图所示:2 #include <math.h>
3 #include <gl/gl.h>
4 #include <gl/glu.h>
5 #include <gl/glaux.h>
6
7 const int screenWidth = 640;
8 const int screenHeight = 480;
9 GLdouble A, B, C, D;
10
11 void myInit(void)
12 {
13 glClearColor(1.0, 1.0, 1.0, 0.0);
14 glColor3f(0.0f, 0.0f, 0.0f);
15 glPointSize(2.0);
16 glMatrixMode(GL_PROJECTION);
17 glLoadIdentity();
18 gluOrtho2D(0.0, (GLdouble)screenWidth, 0.0, (GLdouble)screenHeight);
19 A = screenWidth / 4.0;
20 B = 0.0;
21 C = D = screenHeight / 2.0;
22 }
23
24 void myDisplay(void)
25 {
26 glClear(GL_COLOR_BUFFER_BIT);
27 glBegin(GL_POINTS);
28 for(GLdouble x=0; x<4.0; x+=0.005)
29 {
30 GLdouble func = exp(-x) * cos(2 * 3.14159265 * x);
31 glVertex2d(A * x + B, C * func + D);
32 }
33 glEnd();
34 glFlush();
35 }
36
37 void main(int argc, char** argv)
38 {
39 auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
40 auxInitPosition(0, 0, 500, 500);
41 auxInitWindow("simple");
42 myInit();
43 auxMainLoop((AUXMAINPROC)myDisplay);
44 }
在上面的例子,透露着一个简单的OpenGL操作框架:
void main()
{
InitWindows(); //OpenGL中初始化窗口
RegisterFunc(MyFunc); //注册回调函数
MyInit(); //自定义初始化过程
DoDraw(); //画数部分
}
{
InitWindows(); //OpenGL中初始化窗口
RegisterFunc(MyFunc); //注册回调函数
MyInit(); //自定义初始化过程
DoDraw(); //画数部分
}
其实以上的例子来自于《计算机图形学——用OpenGL实现(第2版)》的内容,但是在原来的程序中,使用的是glut函数,即来自于OpenGL的实用工具库。但是在VC++中,并不自带此辅助库,但在它的辅助库中,有相应的aux函数,因此,上例使用的都是辅助库中的aux函数。
发表评论
-
项目开发日志杂记
2009-05-04 13:05 975开发日志 0:32 2008-9-18 1、中文 ... -
笔记本维护故障一则
2007-03-18 23:40 713唉呀,今天真的是羞死 ... -
多Web服务器的80端口访问
2007-03-23 11:42 1475写这篇文章,源自于自己的一个需求。这几天一校园WEB站点因为域 ... -
[转]Windows系统文件详细解说
2007-04-02 23:38 630详细的介绍了WINDOWS系统文件的用途,我想各位保存一份以后 ... -
关于Windows文件共享服务的一些问题
2007-04-02 23:44 2518[问题引出]:我刚安装windows2003时,Compute ... -
MS Project 2003的一个问题
2007-04-03 18:04 1053[问题引出]:刚装完MS Project 2003,一运行就出 ... -
IBM xSeries服务器安装内存一则
2007-04-04 00:55 825部门进购IBM xSeries 225服务器已经达三年之久了, ... -
JAVA与蓝牙起步(Getting Started with Java and Bluetooth)
2007-04-26 00:39 1515栈初始化在你做任何事之前,你需要初始化你的栈。记住,栈是一个用 ... -
Windows 2000下的远程桌面工具
2007-04-28 18:10 1039在Windows XP之后的系统中都会在“系统”属性中可以设置 ... -
最近在看的书
2007-06-25 03:17 6591、JSP网络开发技术与整合应用 ... -
想看的书---<<开发自己的搜索引擎---Lucene 2.0 + Heritrix>>
2007-06-26 21:47 1734开发自己的搜索引擎---Lucene 2.0 + Heritr ... -
数据挖掘相关
2007-06-27 08:43 759什么是规则?就是一个条件和一个结果的和:If con ... -
不要用浏览器来测试
2007-07-03 11:02 921进行B/S系统编程,大概浏览器就是最直接的测试程序是否正确的方 ... -
Big-Endian And Little-Endian
2007-07-07 11:32 881今天老师给我们复习单片机,出了一个题目,就这个字节存储顺序搞得 ... -
MySQL的中文问题
2007-07-08 21:12 722唉,看到网上这么多的关于MySQL中文编码的问题。今天自己碰到 ... -
[转]RAW FileSystem Recovery
2007-07-11 09:09 1002To know ho ... -
关于人工神经网络中的M-P模型的一点疑问
2007-08-08 22:31 954人工神经网络M-P模型构成一个逻辑非模型,从书中抄下来的,如下 ... -
JOONE(Java Object-Oriented Network Engine)使用初探
2007-09-30 16:03 12751 /**/ ... -
VC++中的ON_COMMAND_RANGE宏
2008-01-26 13:51 1787VC++中的ON_COMMAND_RANGE宏 ... -
[转] 软件企业以人为本的16项措施
2008-05-25 09:19 732软件企业以人为本的16项措施 ...
相关推荐
glutCreateWindow("OpenGL in VC++"); // 其他初始化代码... glutDisplayFunc(display); // 设置显示回调函数 glutMainLoop(); return 0; } ``` `display` 函数是你自定义的绘图函数,里面包含你的OpenGL...
### OpenGL在VC++6.0下的设置 #### 知识点概述 在开始使用Visual C++ 6.0(简称VC++6.0)进行OpenGL编程之前,需要完成一系列的环境配置工作。这些准备工作包括但不限于将必要的OpenGL库文件放置到正确的路径下、...
OpenGL最初由Silicon Graphics Inc. (SGI) 开发,并自1992年以来不断发展和完善,成为了业界广泛接受的标准之一。 **OpenGL的主要特点**: 1. **平台独立性**:OpenGL是一个开放标准,独立于操作系统和硬件平台,...
在Windows系统上,使用Microsoft Visual C++(VC++)作为开发工具时,需要进行一些配置步骤才能搭建起OpenGL的开发环境。本教程将详细介绍如何在VC++中配置OpenGL,并提供64位库文件供您使用。 首先,我们需要安装...
OpenGL(全称“开放式图形库”)是一种广泛使用的跨平台图形应用程序接口(API),由Silicon Graphics Inc. (SGI) 开发,并逐渐成为图形编程领域的工业标准。OpenGL提供了一套标准化的命令集合,用于绘制2D和3D图形...
在本项目中,我们主要探讨的是如何利用分形算法与OpenGL技术来模拟自然风景,并在VC++6.0集成开发环境中实现这一目标。分形是一种数学概念,它体现了自然界中许多自相似的复杂几何形状,如云朵、山脉、树木等。通过...
// must/should match the number of strings in argv glutInit(&argc;, argv); //初始化GLUT库; glutInitWindowSize(700,700); //设置显示窗口大小 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); //设置显示...
4. `inc`:包含头文件的目录,这些头文件定义了类、函数和常量,为项目的源代码提供接口声明。 5. `glContext`:与OpenGL上下文相关的代码,用于创建和管理OpenGL渲染环境。 6. `DockTool`:可能是一个实现界面...
OpenGL最初由Silicon Graphics Inc.(SGI)开发,作为其图形工作站上的IRIS GL的一种替代方案。随着技术的发展,OpenGL被设计成可以在多种平台上运行,并且与不同的操作系统和硬件兼容。 ##### 1.2 OpenGL与DirectX...
它最初由SGI(Silicon Graphics Inc.)为图形工作站开发的IRIS GL发展而来,随后为了实现跨平台移植而被标准化为OpenGL。OpenGL是一种与硬件、窗口系统和操作系统无关的编程接口,这意味着开发者可以在不同的平台上...
### OpenGL开发知识点详解 #### 一、OpenGL概述 ##### 1.1 OpenGL的概念 OpenGL(Open Graphics Library)是一种...通过上述步骤,开发者可以利用VC++6.0开发出高性能的OpenGL应用程序,实现在不同平台上的无缝移植。
### 基于VC++的OpenGL三维应用程序的设计 #### 一、OpenGL概念及工作方式 OpenGL(Open Graphics Library)是一种跨平台的API(Application Programming Interface,应用编程接口),用于渲染二维和三维矢量图形。...
本资源"Programming-Using-OpenGL-in-VCPP.rar"似乎是一个包含教程的压缩包,专门介绍如何在VC++环境下使用OpenGL进行编程。 1. **OpenGL基础知识**:OpenGL是一个跨语言、跨平台的图形库,由Khronos Group维护。它...
综上所述,基于VC++和OpenGL的三维动画仿真及场景漫游系统为用户提供了一种沉浸式的虚拟体验。通过精心设计的场景建模、逼真的蓝天白云模拟、精确的目标靶绘制以及复杂的导弹实体运动控制,再加上流畅的视点漫游技术...
OpenGL是一种强大的图形编程接口,由 Silicon Graphics Inc.(SGI)开发,并且现在由Khronos Group维护。它被广泛用于创建2D和3D图形应用程序,包括游戏、科学可视化和工程设计等领域。在VC++6.0环境下,OpenGL可以...
它由 Silicon Graphics Inc.(SGI)于1992年创建,现在由 Khronos Group 维护。OpenGL 提供了一套标准的接口,允许程序员绘制复杂的3D图像,并且广泛应用于游戏开发、科学可视化、工程设计等领域。 在OpenGL中,...