OpenGL基础图形编程 - OpenGL基本程序结构

计算机图形学实验 实验一 OpenGL 图形编程入门 实验一 OpenGL图形编程入门 实验目的 了解和掌握OpenGL的安装。 掌握一个简单的基于OpenGL的C++程序结构。 掌握Win32程序框架。 掌握OpenGL中若干基本图形的绘制。 实验环境 硬件要求: PC:主流配置,最好为独立显卡,显存为512MB以上 软件环境 操作系统: Windows7/Windows8 语言开发工具:Microsoft Visual Studio 2010,Visual C++ 程序框架: Win32应用程序。 实验要求与内容 要求:将所有实验步骤生成的 阅读详情
用OpenGL编写的程序结构类似于用其他语言编写的程序。实际上,OpenGL是一个丰富的三维图形函数库,编写OpenGL程序并非难事,只需在基本C语言中调用这些函数,用法同Turbo C、Microsoft C等类似,但也有许多不同之处。
  本指南所有的程序都是在Windows NT的Microsoft Visual C++集成环境下编译连接的,其中有部分头文件和函数是为这个环境所用的,例如判别操作系统的头文件“glos.h”。此外,为便于各类读者同时快速入门,在短时间内掌握OpenGL编程的基本方法和技巧,指南中例子尽量采用标准ANSI C调用OpenGL函数来编写,而且所有例程都只采用OpenGL附带的辅助库中的窗口系统。此外,这样也便于程序在各平台间移植,尤其往工作站UNIX操作系统移植时,也只需改动头文件等很少很少的部分。下面列出一个简单的OpenGL程序:

  例4-1 OpenGL简单例程(Simple.c)

  #include <GL/gl.h>
  #include <GL/glaux.h>
  #include "glos.h"

  void main(void)
  {
    auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
    auxInitPosition(0,0,500,500);
    auxInitWindow("simple");

    glClearColor(0.0,0.0,0.0,0.0);
    glClear(GL_COLOR_BUFFER_BIT);

     glColor3f(1.0,0.0,0.0);
    glRectf(-0.5,-0.5,0.5,0.5);

     glFlush();
    _sleep(1000);
  }

  这个程序运行结果是在屏幕窗口内画一个红色的方块。
  下面具体分析整个程序结构:首先,在程序最开始处是OpenGL头文件:<GL/gl.h>、<GL/glaux.h>。前一个是gl库的头文件,后一个是辅助库的头文件。此外,在以后的几章中还将说明OpenGL的另外两个头文件,一个是<GL/glu.h>实用库的头文件,另一个是<GL/glx.h>X窗口扩充库的头文件(这个常用在工作站上)。接下来是主函数main()的定义:一般的程序结构是先定义一个窗口:

  auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
  auxInitPosition(0,0,500,500);
  auxInitWindow("simple");

  auxInitDisplayMode(AUX_SINGLE|AUX_RGBA)设置窗口显示模式为RGBA方式,即彩色方式,并且图形缓存为单缓存(SINGLE BUFFER)。auxInitPosition(0, 0, 500, 500)定义窗口的初始位置,前两个参数(0, 0)为窗口的左上角点的屏幕坐标,后两个参数(500,500)为窗口的宽度和高度。auxInitWindow("simple")是窗口初始化,字符参数是窗口名称。
  然后是窗口内清屏:

  glClearColor(0.0,0.0,0.0,0.0); glClear(GL_COLOR_BUFFER_BIT);

  第一句将窗口清为黑色,第二句将颜色缓冲区清为glClearColor(0.0, 0.0, 0.0, 0.0)命令所设置的颜色,即同窗口背景颜色一致。
  再接着是在窗口内画一个物体:

  glColor3f(1.0,0.0,0.0);
  glRectf(-0.5,-0.5,0.5,0.5);

  很明显,第一句设置物体颜色,函数中前三个参数分别为R、G、B值,最后一个参数是Alpha值,范围都从0至1;第二句绘制一个二维矩形。注意:OpenGL是针对三维图形而言,因此用作OpenGL编程绘制物体必须意识到任何一个物体都是三维的,具有空间性,而显示于屏幕上的物体都是三维物体在二维平面上的投影。
  从表面上看,上述程序代码很简单,实际上已经用到了缺省的投影形式(正射投影)。再看glFlush()函数,表示强制绘图完成。最后一句_sleep(1000),参数单位为毫秒,整句意思是保持现有状况一秒钟,然后结束程序运行。这个函数是VC++的库函数。
  总而言之,OpenGL程序基本结构为定义窗口、清理窗口、绘制物体、结束运行。 
 
实验一  OpenGL图形编程入门 ZZU的学弟学妹们不要抄作业哦~(`Д´) 一、实验目的 1.了解和掌握OpenGL的安装。 2.掌握一个简单的基于OpenGL的C++程序结构。 3.掌握win32程序框架。 4.掌握OpenGL中若干基本图形的绘制。 二、实验内容 1.准备好OpenGL库文件。 Glut32.dll路径为%system root&\SysWOW64。 Glut32.lib路径为PAT... 阅读详情

相关推荐

[Python图像处理] 二十七.OpenGL入门及绘制基本图形(一)

八年前,我正是通过学习OpenGL和C++,通过做“采蘑菇的小矮人”游戏,慢慢走上并爱上了编程。回过头来,我希望通过Python和OpenGL分享一些有趣的知识,提升您的编程兴趣,还原当时的一些记忆。前面一篇文章详细讲解了图像分类原理,并介绍基于KNN、朴素贝叶斯算法的图像分类案例。这篇文章是介绍Python和OpenGL的入门知识,包括安装、语法、基本图形绘制等。基础性文章,希望对你有所帮助。

杨秀璋的专栏 1万+

OpenGL基础程序结构

用OpenGL编写的程序结构类似于用其他语言编写的程序。实际上,OpenGL是一个丰富的三维图形函数库,编写OpenGL程序并非难事,只需在基本C语言中调用这些函数,用法同Turbo C、Microsoft C等类似,但也有许多不同之处。   本指南所有的程序都是在Windows NT的Microsoft Visual C++集成环境下编译连接的,其中有部分头文件和函数是为这个环境所用的,例如判别操作系统的头文件“glos.h”。此外,为便于各类读者同时快速入门,在短时间内掌握OpenGL编程的基本方法和技

yinshipin007的博客 663

OpenGL三维图形编程入门实例

OpenGL(Open Graphics Library)是一种用于渲染2D和3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。自1992年首次推出以来,OpenGL已成为图形编程领域的标准,它在游戏、虚拟现实、计算机辅助设计(CAD)等多个领域得到了广泛应用。OpenGL的核心优势在于其可访问性:它提供了一系列标准函数调用,使得开发者可以在不同的操作系统和硬件平台上实现图形渲染功能。本章将详细介绍OpenGL的发展历程、特点以及它在图形编程中的重要地位。

weixin_36289813的博客 1021

【期末】openGL基础知识+编程题

openGL编程

weixin_45454859的博客 702

opengl库文件

包含glaux.h,glaux.lib文件

OPenGL基本程序结构

基于C++的OpenGL基本程序结构,word文档格式,学计算机图形学可参考

OpenGL学习——入门篇 第二章 基础实例2-3 RGBA颜色和索引色

RGBA颜色和索引色

每天进步一点点 727

【首份】2023年30米分辨率土地利用遥感监测数据

为了恢复和重建我国土地利用变化的现代过程,更好地预测、预报土地利用变化趋势,地球资源数据云以美国陆地卫星Landsat 遥感影像数据作为主信息源,结合Sentinel系列数据,通过人工目视解译和机器学习方法,建立了国家尺度1:10 万比例尺多时期土地利用/土地覆盖遥感监测数据库(CNLUCC)因早期Landsat数据时空覆盖缺失,1972-1977年合成第一期数据,1978-1985年合成第二期数据,1986年起每年度生成一期数据。投影:Albers正轴等面积双标准纬线圆锥投影南标准纬线:25°N。

地球资源数据云的官方博客 3682

OpenGL程序的基本结构

OpenGL入门;了解第一个OpenGL程序

qq_23879187的博客 2939

论文阅读笔记--Grid Anchor based Image Cropping: A New Benchmark and An Efficient Model

基于网格锚的图片裁剪:一种新的标准和高效的模型摘要1.介绍2.相关工作2.1 图像裁剪数据集和评估指标 摘要 图像裁剪的目的是通过去除图像中无关的内容来改善图像的组成和美学质量。现有的图像裁剪数据库大多只提供一个或多个人工标注的边界框作为基准,难以反映实际中图像裁剪的非唯一性和灵活性。 采用IoU等评价指标也不能可靠地反映裁剪模型的真实性能。本文回顾了图像裁剪的问题,并通过考虑图像裁剪的特殊特性和要求(如局部冗余、内容保存、高宽比),提出了基于网格锚的公式。 我们的公式将候选裁剪窗口的搜索空间从数百万减少到

qq_22565865的博客 2948

Ansys HFSS 中的同轴电缆仿真

准确模拟它们的行为对于确保 RF 系统的最佳性能至关重要。在本博客中,我们将介绍在 HFSS 中设置同轴电缆仿真并绘制插入损耗、回波损耗和电场分布的过程。将波端口分配给同轴线的两端以激励模型,并定义了从 1 GHz 到 20 GHz 的频率扫描以评估其宽带性能。铜分配给内部导体,铝分配给外部导体。介电区域使用 PTFE 定义,其相对介电常数为 2.1,损耗角正切为 0.00022。仿真完成后,结果用于绘制整个频率范围内的回波损耗和插入损耗。此外,电介质内的电场分布也被绘制和动画化。

jkh920184196的博客 1910

linux opengl图形编程,OpenGL基本程序结构

用OpenGL编写的程序结构类似于用其他语言编写的程序。实际上,OpenGL是一个丰富的三维图形函数库,编写OpenGL程序并非难事,只需在基本C语言中调用这些函数,用法同Turbo C、Microsoft C等类似,但也有许多不同之处。本指南所有的程序都是在Windows NT的Microsoft Visual C++集成环境下编译连接的,其中有部分头文件和函数是为这个环境所用的,例如判别操作系...

weixin_35057850的博客 461

数据分享|1961-2017年中国0.25°×0.25° 逐日地表水文数据集(VIC-CN05.1)

其中,全球径流中心(University of New Hampshire and Global Runoff Data Centre, UNH/GRDC)的复合产流场集成了观测的河道径流和水量平衡模式模拟的地表和地下径流,常被用来评估模拟的径流。在长白山、海北灌丛和千烟洲通量站,模拟与观测的逐月潜热通量的平均NSE为0.61。VIC-CN05.1受益于较准确的大气驱动场、先进的地表水文参数化方案以及更真实丰富的土壤信息,可作为中国水文气象研究的参照数据,用于陆面模式的评估和长期的趋势分析等。

J_Giser的博客 1834

实验1 OpenGL初识

实验预备知识 Windows下的OpenGL编程步骤简单介绍详见课程实验教学博客-实验0 安装GLUT包与创建工程: https://blog.csdn.net/wpxu08/article/details/70208353   1.实验目的: 熟悉编程环境;了解光栅图形显示器的特点;了解计算机绘图的特点;利用VC+OpenGL作为开发平台设计程序,以能够在屏幕上生成任意一个像素点为本实...

图形学与可视化 5926

AI在电商中的搜索优化

自拟标题 《AI技术助力电商搜索优化:深度解析一线大厂面试题及算法编程实践》 概述 随着人工智能技术的不断发展,AI在电商搜索优化中的应用日益广泛。本文将围绕“AI在电商中的搜索优化”这一主题,介绍国内头部一线大厂如阿里巴巴、百度、腾讯、字节跳动等在面试中常见的AI相关面试题和算法编程题,并提供详尽的答案解

AI天才研究院 913

基于Simulink的PMSM轮毂电机崎岖路面悬架协同控制仿真

本文完成了基于Simulink的PMSM轮毂电机崎岖路面悬架协同控制仿真,实现了:✅ 构建了四轮独立驱动+主动悬架高保真整车模型✅ 实现了Skyhook主动悬架控制✅ 设计了驱动-悬架状态共享与协同决策机制✅ 验证了5 m/s高速下连续颠簸路面稳定通过能力✅ 为高性能移动机器人提供一体化底盘解决方案。

xiaoheshang_123的博客 190

图形学入门自学笔记——lec2【OpenGL】

OpenGL是一套图形编程接口(API),用于进行跨平台的图形渲染和计算。OpenGL的设计和实现是基于C语言的,它提供了一系列函数和数据结构,用于管理图形硬件和执行图形计算。

m0_52049533的博客 2334

FM1288回声消除芯片调试方案 - 综述

专栏文章概览

优快云mianfeixiazai001的博客 1714

OpenGL基础图形编程(十)真实感图形基本概念

由于真实感图形是通过景物表面的颜色和明暗色调来表现景物的几何形状、空间位置以及表面材料的,而一个物体表面所呈现的颜色是由表面向视线方向辐射的光能决定的。在计算机图形学中,常采用一个既能表示光能大小又能表示其颜色组成的物理量即光亮度(luminance)或光强(intensity of light)来描述物体表面朝某方向辐射光能的颜色。采用这个物理量可以正确描述光在物体表面的反射、透射和吸收现象,因而可以正确计算处物体表面在空间给定方向上的光能颜色。

heyuchang666的专栏 1万+

使用 MATLAB/Simulink + Simscape Electrical,构建一个含储能的微电网系统,实现储能系统与并网逆变器的协同控制

摘要:本文基于Simulink平台,详细介绍了微电网中储能系统与并网逆变器的协同控制建模与仿真方法。主要内容包括:1)构建包含光伏、风电、锂电池和双向DC-DC变换器的微电网系统;2)设计并网逆变器的PQ/Vf双模式控制策略;3)实现储能系统与逆变器的协同控制逻辑,包括SOC保护和功率分配;4)通过多种工况仿真验证系统性能。结果表明,该系统能有效维持微电网稳定运行,支持并网/离网无缝切换。文章还探讨了优化方向和应用扩展,为新能源微电网控制提供了实用参考。

xiaoheshang_123的博客 101

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

实验一OpenGL图形编程入门

实验一OpenGL图形编程入门

m0_46336221的博客 2281

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

OpenGL基础图形编程(一)OpenGL与3D图形世界

1.1、OpenGL使人们进入三维图形世界1.2、OpenGL提供直观的三维图形开发环境 OpenGL提供一系列的三维图形单元供开发者调用。 OpenGL提供一系列的图形变换函数。 OpenGL提供一系列的外部设备访问函数,使开发者可以方便地访问鼠标、键盘、空间球、数据手套等这种直观的三维图形开发环境体现了OpenGL的技术优势,这也是许多三维图形开发者热衷于OpenGL的缘由所在。 1.3、OpenGL成为目前三维图形开发标准

heyuchang666的专栏 6706

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OpenGL基础图形编程(四)基础程序结构

用OpenGL编写的程序结构类似于用其他语言编写的程序。实际上,OpenGL是一个丰富的三维图形函数库,编写OpenGL程序并非难事,只需在基本C语言中调用这些函数,用法同Turbo C、Microsoft C等类似,但也有许多不同之处。

heyuchang666的专栏 1759

OpenGL基础图形编程

一、OpenGL与3D图形世界 1.1、OpenGL使人们进入三维图形世界   我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体。我们又生活在一个充满信息的世界中,能否尽快地理解并运用这些信息将直接影响事业的成败,所以我们需要用一种最直接的形式来表示这些信息。   最近几年计算机图形学的发展使得三维表现技术得以形成,这些三维表现技

Duosi's Blog 7万+
上一篇: OpenGL基础图形编程 - Windows NT环境下的OpenGL
下一篇: OpenGL基础图形编程 - OpenGL数据类型和函数名
popkiler
博客等级 码龄24年 90粉丝 246原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值