文档章节

OpenGL学习

z
 zwx129921
发布于 2016/03/16 02:21
字数 376
阅读 3
收藏 0

写了一个谢宾斯基三角形的OpenGL程序,下面是源代码

#include<GL/glut.h>

void init(void)
{
 glClearColor(1.0,1.0,1.0,1.0);              //设置背景颜色为白色
 glColor3f(1.0,0.0,0.0);                     //绘图颜色为红色

 /*设置观察条件*/
 /*在观察坐标系中定义一个大小为50*50的窗口,窗口的左下角为观察坐标系的坐标原点*/

 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 gluOrtho2D(0.0,50.0,0.0,50.0);
 glMatrixMode(GL_MODELVIEW);
}

void display(void)
{
 GLfloat vertices[3][2]={{0.0,0.0},{25.0,50.0},{50.0,0.0}};
                                             //一个三角形的顶点数据
 int j,k;
 int rand(void);                             //标准的随机数生成器
 GLfloat p[2]={7.5,5.0};                     //在三角形内部任意位置的一个初始点
 glClear(GL_COLOR_BUFFER_BIT);               //清空绘图窗口,并把绘图窗口的颜色设置为背景颜色

 glBegin(GL_POINTS);
                                             //计算并绘制5000个新的点
 for(k=0;k<5000;k++)
 {
  j=rand()%3;                            //随机选择三角形的一个顶点
  //计算随机选择的顶点和三角形内部的初始点之间的中点
  p[0]=(p[0]+vertices[j][0])/2;
  p[1]=(p[1]+vertices[j][1])/2;

  //绘制新生成的点
  glVertex2fv(p);
 }
 glEnd();
 glFlush();                                  //清空缓存
}

int main(int argc,char *argv[])
{
 glutInit(&argc,argv);
 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);  //这是默认的显示模式,可以省略

 glutInitWindowSize(500,500);                //大小为500*500像素的绘图窗口
 glutInitWindowPosition(0,0);                //把窗口放在屏幕左上角

 glutCreateWindow("Gasket");                //绘制窗口标题
 glutDisplayFunc(display);                  //注册显示回调程序,当窗口打开等待事件发生时会调用该显示回调函数

 init();                                    //设置属性
 glutMainLoop();                            //进入事件循环
}


© 著作权归作者所有

z
粉丝 0
博文 24
码字总数 32669
作品 0
海淀
私信 提问
图片和图形之用OpenGL ES显示图形(9)

原文 概要 Android框架提供了大量用于创建有吸引力的功能性图形用户界面的标准工具。但是,如果您想要更多地控制应用程序在屏幕上绘制的内容,或者冒险进入三维图形,则需要使用其他工具。A...

lichong951
2018/05/26
0
0
OpenGL ES Programming Guide for iOS 第一章

关于OpenGL ES Open Graphics Library(OpenGL)用于二维及三维数据的可视化。它是一种多用途的开放标准图形库,支持二维和三维数位内容创作,机械和建筑设计,虚拟样,飞行模拟,游戏,以及更...

长平狐
2012/10/08
459
0
【PDF分享】OpenGL入门学习.pdf

OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强 大,调用方便的底层图...

红薯
2010/11/08
2K
2
OpenGL学习入门之VS2010环境配置 [转]

OpenGL开发环境简介    基于OpenGL标准开发的应用程序运行时需有动态链接库OpenGL32.DLL、Glu32.DLL,这两个文件在安装Windows NT时已自动装载到C:WINDOWSSYSTEM32目录下(这里假定用户将W...

IMGTN
2012/07/24
0
0
Android 自定义相机开发(三) —— 了解下EGL

胡说八道 如果要使用OpenGl来自定义相机,这个还是要了解下的。可能大多数开发者使用过OpengGL但是不知道EGL是什么?EGL的作用是什么?这其实一点都不奇怪,因为Android中的GlSurfaceView已经...

aserbao
2018/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
3
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
3
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
3
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部