OpenGL用法暨第一个OpenGL程序

//OpenGL的书写规范 暨我的第一个OpenGL程序

//有了框架,其他就什么都好说了

#include "..\H\glut.h"

#pragma comment(lib, "glut.lib")

void init(void)

{

glClearColor(1.0, 1.0, 0.0, 0.0);//设置主窗口的背景颜色

glColor3f(1.0f,0.0f,0.0f);  // 设置所绘图形的颜色

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0.0,640.0,0.0,480.0);

}

void myDisplay(void)

{

glClear(GL_COLOR_BUFFER_BIT);// 将缓存清除为预先的设置值

/*------------------------------------------------------------------------*/

//此处添加需要绘制的图形

glBegin(GL_POLYGON);

glVertex3f(200.0,200.0,0.0);

glVertex3f(200.0,300.0,0.0);

glVertex3f(300.0,300.0,0.0);

glVertex3f(300.0,200.0,0.0);

glEnd();

//

glBegin(GL_POINTS);

glVertex2i(60,60);

glVertex2i(80,80);

glVertex2i(30,50);

glEnd();

//

glBegin(GL_POINTS);

for(int i=50;i<400;i=i+10)

glVertex2i(i,50);

glEnd();

//

glBegin(GL_LINES);//两条线段

glVertex2i(85,80);

glVertex2i(100,100);

glVertex2i(110,90);

glVertex2i(130,150);

glVertex2i(100,205);//不会画出

glEnd();

//

glBegin(GL_LINE_STRIP);//依次链接的折现

glVertex2i(200,100);

glVertex2i(290,180);

glVertex2i(250,90);

glVertex2i(230,150);

glVertex2i(270,200);

glEnd();

//

glColor3f(0.0f,0.0f,1.0f);// 下方颜色

glBegin(GL_LINE_LOOP);//依次链接 直至 封闭

glVertex2i(250,300);

glVertex2i(300,280);

glVertex2i(190,300);

glVertex2i(330,330);

glVertex2i(300,350);

glEnd();

/*------------------------------------------------------------------------*/

glFlush();//强制OpenGL函数在有限时间内运行

}

int main(int argc, char ** argv)

{

glutInit(&argc, argv);//初始化GLUT库

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB|GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);//单缓冲、RGB模式|其他模式

glutInitWindowSize(500,500);//窗口尺寸大小

glutInitWindowPosition(200, 200);//距离屏幕边框距离

glutCreateWindow("OpenGL_Window");//窗口标题

init();

glutDisplayFunc(myDisplay);//显示需要绘制的图形

glutMainLoop();//循环

return 0;

}

时间: 2024-10-03 02:51:20

OpenGL用法暨第一个OpenGL程序的相关文章

第一个OpenGL程序

刚开始学习OpenGL,感觉这个挺有趣的(在绘制三维模型时,空间想象能力要求比较高,不然很头疼的). 新东西,新心情...来一发红色三角形. 我就是要通过OpenGL来绘制一个红色的三角形.现在我们来看一下代码: #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存 glLoadIdentity(); // 重置当前的模型观察矩阵 glTran

OpenGL学习-------visual studio 2010配置和第一个OpenGL程序讲解

OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. 1.与C语言紧密结合. OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的.如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL作图甚至比TC更加简单. 2.强大的可移植性. 微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机).而OpenGL不仅用于 Windows,还可

【OpenGL】详解第一个OpenGL程序

写在前面 OpenGL能做的事情太多了!很多程序也看起来很复杂.很多人感觉OpenGL晦涩难懂,原因大多是被OpenGL里面各种语句搞得头大,一会gen一下,一会bind一下,一会又active一下.搞到最后都不知道自己在干嘛,更有可能因为某一步的顺序错误导致最后渲染出错,又或者觉得记下这些操作的顺序是非常烦人的一件事.那么,OpenGL为什么会长成这个样子呢?这篇文章旨在通过一个最简单的OpenGL程序开始,让我们能够"看懂"它,"记住"这些操作顺序. 我们先来解

Qt4.3.4下面创建一个OpenGL 窗口

直接上代码: NeHeWidget.h #include <QtOpenGL/qgl.h> class NeHeWidget:public QGLWidget { Q_OBJECT public: NeHeWidget( QWidget* parent=0 ); ~NeHeWidget(); protected: void initializeGL(); void paintGL(); void resizeGL(int width,int height); }; NeHeWidget.cpp

【OpenGL】第二篇 Hello OpenGL

------------------------------------------------------------------------------------------------------------------------------- 就像学习其他编程语言一样,为了顺利写下第一个OpenGL程序 我们必须不辞辛苦的先铺好砖块,搭建好环境…… 所以接下来让我先把所需要的库的环境安置好,再开始coding. ------------------------------------

基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之Shader准备(7)

Cocos2d-x底层图形绘制是使用OpenGL ES协议的.OpenGL ES是什么呢? OpenGL ES(OpenGl for Embedded System)是OpenGL三维图形API的子集,针对手机.Pad和游戏主机等嵌入式设备而设计.该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准.OpenGL ES是OpenGL三维图形API的子集,针对手机.Pad和游戏主机等嵌入式设备而设计.Cocos2d-x底层图形渲染使

【iOS开发之旅】第一个iOS程序

启动界面:开发环境版本:模拟器运行效果:main.m // // main.m // 01-加法计算器 // // Created by ChenQianPing on 16/1/20. // Copyright © 2016年 chenqp. All rights reserved. // #import <UIKit/UIKit.h> #import "AppDelegate.h" // IOS程序是从main开始运行的 int main(int argc, char

第一个OC程序

第一个OC程序源码如下: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool{ NSLog(@"Hello,World!"); } return 0; } 下面对这个输出"Hello,World!"的OC程序做下介绍: #import #import是GCC编译器提供的,可以保证头文件只被包含一次. #import <

第一个cocos2d程序

简介 我们这个专题要学习的是一款iOS平台的2D游戏引擎cocos2d,严格来说叫做cocos2d-iphone,因为cocos2d有很多个版本,我们学习的是iphone版本的.既然是个游戏引擎,那么它肯定是为了方便游戏开发而设计的.使用了cocos2d,你可以编写极少量的代码就做出非常cool的游戏,节省你的开发周期.当然,要想出一个大作,还必须下苦工.在iOS平台的游戏引擎还不止cocos2d一个,不过cocos2d还是比较受欢迎的,AppStore上已经有超过100个游戏是基于cocos2