No 图 No Code,上面旋转的地球是不是很酷炫,下面就让我们开始说说如何绘制旋转地球吧?绘制旋转地球需要3个步骤: 计算球体顶点数据。 地球纹理贴图。 通过MVP矩阵旋转地球。...计算球体顶点数据 我们知道OpenGL中最基本的图元是三角形,任何复杂的图形都可以分解为一个个的三角形,球体也不例外,假设球体上有“经纬度”,通过“经纬度”将球体分割为一个个的四边形,如下图: ?...R.drawable.earth) textureId = GLTools.loadTexture(bitmap) } GLTools.loadTexture为封装的工具类方法,在OpenGL...Matrix.frustumM(projectionMatrix, 0, -ratio, ratio, -1f, 1f, 3f, 20f) } 绘制并通过MVP矩阵旋转地球
在上一篇文章中我们介绍了使用OpenGL ES 播放视频,在末尾提到如果渲染视频的窗口宽高比和视频宽高比不一致会导致视频拉伸,这篇文章将会介绍如何通过视频的缩放来解决这个问题。...我们在OpenGL ES 播放视频的基础进行修改,修改顶点shader attribute vec4 a_Position; attribute vec2 a_TexCoordinate; varying...) } GLES20.glUniformMatrix4fv(mvpMatrixLoc, 1, false, modelMatrix, 0)为矩阵数据设置,其他已经在OpenGL...视频的旋转、平移和缩放是一样的,我们只需要对矩阵进行相应的操作,比如将视频旋转45度,代码如下: Matrix.rotateM(modelMatrix,0,45F,0F,0F,1F) 效果如下: ?
一、安装GLUT 工具包 GLUT 不是OpenGL 所必须的,但它会给我们的学习带来一定的方便,推荐安装。.... // #include "stdafx.h" #include const GLfloat d = 0.04; //主函数每次显示调用的用户自定义显示函数 void myDisplay...按浮点坐标与矩形宽度和高度参数绘制矩形 glRectf(j*d , d *i, (j + 1)*d , d *(i + 1));...//&myDisplay,表示取得函数名所对应的地址(函数地址) glutDisplayFunc(&myDisplay); //程序主循环 glutMainLoop()...至此,VC6下的OpenGL环境搭建完成! 祝各位Coding 愉快~
给定一个长度为 n 的整数数组 A 。 计算F(0), F(1), ..., F(n-1)中的最大值。 A = [4, 3, 2, 6] F(0) = (...
文章目录 一、绘制三角形 二、选中矩阵设置 三、矩阵缩放变换 四、矩阵旋转变换 五、矩阵平移变换 六、相关资源 一、绘制三角形 ---- 先绘制一个三角形 , 矩阵变换的主题就是该三角形 ; OpenGL...三角形绘制相关参考 【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 ) 博客 ; 代码示例 : // 渲染场景 // 清除缓冲区...】十、OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | 清除缓冲区 | 设置当前颜色值 | 设置点大小 | 绘制点 ) 博客中简单介绍了 投影矩阵...和 模型视图矩阵 ; 进行 平移 , 缩放 , 旋转 等矩阵操作 , 主要针对 模型视图矩阵 进行操作 ; 在进行 OpenGL 环境渲染时 , 选中了 GL_MODELVIEW 模型视图矩阵后 ,...y, GLfloat z); // 第 1 个参数是旋转角度 , 后面三个参数的值代表是否绕该轴旋转 , // 如果对应值设置为 1 , 则绕该轴旋转 // 这里设置的是绕 z 轴旋转
任务描述: 使用Python编写程序,调用OpenGL接口,实现简单的矩形旋转动画。...准备工作: 安装和配置Python+OpenGL开发环境,详见Win10系统配置Python3.6+OpenGL环境详细步骤 参考代码: 运行效果: http://mpvideo.qpic.cn/0bc3kqacqaaapyadr3alrfrfavgdfbkaakaa.f10003...dis_t=1646645764&vid=wxv_2269956183530766347&format_id=10003&support_redirect=0&mmversion=false 思考题: 矩形在旋转时没有保持原来的形状
二.实验内容 了解和使用VC的开发环境,理解简单的OpenGL程序结构。 掌握OpenGL提供的基本图形函数,尤其是生成点的函数。 三.实验原理 1....OpenGL基本函数均使用gl作为函数名的前缀,如glClearColor();实用函数则使用glu作为函数名的前缀,如gluSphere()。...glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); glColor3f (1.0f, 1.0f, 1.0f); glRectf...观察myDisplay函数中的三个函数调用,发现它们都以gl开头。这种以gl开头的函数都是OpenGL的标准函数,下面对用到的函数进行介绍。...glRectf:画一个矩形。四个参数分别表示了位于对角线上的两个点的横、纵坐标。 (4)glFlush:保证前面的OpenGL命令立即执行(而不是让它们在缓冲区中等待)。
2.实验内容: (1) 了解和使用VC的开发环境,理解简单的OpenGL程序结构。 (2) 掌握OpenGL提供的基本图形函数,尤其是生成点的函数。...OpenGL基本函数均使用gl作为函数名的前缀,如glClearColor();实用函数则使用glu作为函数名的前缀,如gluSphere()。...第三部分是OpenGL的主要部分,使用OpenGL的库函数构造几何物体对象的数学描述,包括点线面的位置和拓扑关系、几何变换、光照处理等等。...void) { glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); glColor3f (1.0f, 1.0f, 1.0f); glRectf...; 2) glClear(GL_COLOR_BUFFER_BIT):将窗口的背景设置为当前清空颜色; 3) glRectf,画一个矩形。
目录 4.4 编程实例——三角形与矩形变换及动画 4.4.1 自定义矩阵变换实例——三角形变换 4.4.2 OpenGL几何变换实例——矩形变换 4.4.3 变换应用实例——正方形旋转动画 4.4 编程实例...=ty; /* 将平移矩阵前乘到复合矩阵matComposite中 */ matrix3x3PreMultiply(matTransl,matComposite); } /* 旋转变换函数...- p1.z); /* 通过平移-旋转-平移复合变换序列完成任意轴的旋转(注意OpenGL中的反序表示)*/ glTranslatef (p1.x, p1.y, p1.z); /...glRotated(theta, 0.0, 0.0, 1.0); glRectf(cx- length/2, cy - length / 2, cx + length / 2, cy + length...");// 创建显示窗口 glutDisplayFunc(myDisplay);//注册显示回调函数 glutIdleFunc(myIdle);//注册闲置回调函数 glutMainLoop();
OpenGL的图形库函数封装在动态链接库OpenGL32.DLL中,开发基于OpenGL的应用程序 OpenGL主要由以下库函数组成: OpenGL核心库:包含115个最基本的命令函数,它们都是以”...这部分函数用于常规的、核心的图形处理。 OpenGL实用库函数:包含43个函数,以”glu“作为前缀,在任何OpenGL平台上都可以应用。这部分函数通过调用核心库的函数来实现一些复杂的操作。...OpenGL辅助库函数:OpenGL Utility Toolkit (GLUT)包含31个函数,以”aux“作为前缀,但它们不能在所有的OpenGL平台上使用。...Windows专用库函数(WGL):包含6个函数,以”wgl“作为前缀,用于连接OpenGL和Windows NT。 Win32API函数(WGL):包含5个函数,没有专门的前缀。...glClear(GL_COLOR_BUFFER_BIT); // 设置颜色,三个参数分别为RGB glColor3f(0.0f, 1.0f, 1.0f); // 绘制矩形 glRectf
把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(如果是VS2013,则是其安装目录下面的”VC\lib”文件夹)。...current drawing color to red glColor3f(1.0f, 1.0f, 0.0f); // draw rectangle with current color glRectf...OpenGL中一些函数 glutInit(&argc, argv) 对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次。...glutDisplayFunc(&myDisplay) 设置回调函数,当需要进行画图时,myDisplay这个函数就会被调用。(笔者这个说法不够准确)。...(这个函数可以显示窗口,并且等待窗口关闭后才会返回) 参考链接:https://www.jianshu.com/p/6e3dc7a88640
假设 Bk 是数组 A 顺时针旋转 k 个位置后的数组,我们定义 A 的“旋转函数” F 为: F(k) = 0 * Bk[0] + 1 * Bk[1] + ... + (n-1) * Bk[n-1]。
1)与C语言紧密结合: OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。...2.实验内容: (1) 了解和使用VC的开发环境,理解简单的OpenGL程序结构; (2) 掌握OpenGL提供的基本图形函数,尤其是生成点的函数。...OpenGL基本函数均使用gl作为函数名的前缀,如glClearColor();实用函数则使用glu作为函数名的前缀,如gluSphere()。...glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); glColor3f (1.0f, 1.0f, 1.0f); glRectf...; 2) glClear(GL_COLOR_BUFFER_BIT):将窗口的背景设置为当前清空颜色; 3) glRectf,画一个矩形。
本来OpenGL程序一般还要包含和,但GLUT的头文件中已经自动将这两个文件包含了,不必再次包含。 然后看main函数。...注意main函数中的各语句,除了最后的return之外,其余全部以glut开头。这种以glut开头的函数都是GLUT工具包所提供的函数,下面对用到的几个函数进行介绍。...在glutDisplayFunc函数中,我们设置了“当需要画图时,请调用myDisplay函数”。于是myDisplay函数就用来画图。观察myDisplay中的三个函数调用,发现它们都以gl开头。...这种以gl开头的函数都是OpenGL的标准函数,下面对用到的函数进行介绍。 1、glClear,清除。...GL_COLOR_BUFFER_BIT表示清除颜色,glClear函数还可以清除其它的东西,但这里不作介绍。 2、glRectf,画一个矩形。四个参数分别表示了位于对角线上的两个点的横、纵坐标。
OpenGL中的glutInitDisplayMode()函数的作用主要是在创建窗口的时候,指定其显示模式的类型。...函数原型为:voidglutInitDisplayMode(unsigned int mode); mode参数是一个GLUT库里预定义的可能的布尔组合。...一般用OpenGL绘图使用双缓冲模式。
下面介绍下OpenGL画线的一些基础知识和glutReshapeFunc()函数。 (1)数学上的直线没有宽度,但OpenGL的直线则是有宽度的。...为了解决这一问题,OpenGL要求:指定顶点的命令必须包含在glBegin函数之后,glEnd函数之前(否则指定的顶点将被忽略),并由glBegin来指明如何使用这些点。...如果使用的是GLUT,通知将自动完成,并调用向glutReshapeFunc()注册的函数。该函数必须完成下列工作: Ÿ 重新建立用作新渲染画布的矩形区域; Ÿ 定义绘制物体时使用的坐标系。...接下来三个函数调整绘图坐标系,使左下角位置为(0, 0),右上角为(w, h)。...glEnd (); y+=m; } } void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f (1.0f, 0.0f, 0.0f); glRectf
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11543828.html 最近实习要用到opengl库就是跟opencv 有点像的那个,然后下了一个...https://blog.csdn.net/ding_programmer/article/details/91049357 下载之后,复制代码到自己的项目运行 改一个那个我定义的路径,然后还要配置一下opengl...一、操作 鼠标控制物体旋转移动,滚轮缩放,上下左右键可以控制模型的移动 F1,F2,F3,F4,F5,F6,F7,F8可以更换显示文件 Insert键 更换显示模式 (wire,flat,flatlines...可以实现旋转: ? 旋转之后: ? 可以实现缩放: ? 缩小: ? 可以实现平移: ?...glRotatef(xRotate, 1.0f, 0.0f, 0.0f); // 让物体旋转的函数 第一个参数是角度大小,后面的参数是旋转的法向量 glRotatef(yRotate,
变量 void 表示空,用于无返回值的函数。...比如顶点shader中main函数: void main() { gl_Position = vPosition; } float、int、bool 分别代表浮点型,整型,布尔型。...函数 函数的用法和C语言基本相同,在GLSL中不能递归调用且必须声明返回值类型,如果没有返回值则使用void。
下面介绍下OpenGL画线的一些基础知识和glutReshapeFunc()函数。 (1)数学上的直线没有宽度,但OpenGL的直线则是有宽度的。...为了解决这一问题,OpenGL要求:指定顶点的命令必须包含在glBegin函数之后,glEnd函数之前(否则指定的顶点将被忽略),并由glBegin来指明如何使用这些点。...如果使用的是GLUT,通知将自动完成,并调用向glutReshapeFunc()注册的函数。该函数必须完成下列工作: 重新建立用作新渲染画布的矩形区域; 定义绘制物体时使用的坐标系。...接下来三个函数调整绘图坐标系,使左下角位置为(0, 0),右上角为(w, h)。...y+=m; } } void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f (1.0f, 0.0f, 0.0f); glRectf
OpenGL 中常用的 GLUT 函数库 一、初始化 void glutInit(int* argc,char** argv) 这个函数用来初始化GLUT库。...对应 main 函数的形式应是: int main(int argc,char* argv[]); 这个函数从 main 函数获取其两个参数。...但是很遗憾,在多数OpenGL平台上,不被支持。 二、事件处理(Event Processing) void glutMainLoop(void) 让 glut 程序进入事件循环。...返回值是生成窗口的标记符,可用函数glutGetWindow()加以引用。...void glutSwapBuffers(void); 当窗口模式为双缓存时,此函数的功能就是把后台缓存的内容交换到前台显示。当然,只有单缓存时,使用它的功能跟用glFlush()一样。
领取专属 10元无门槛券
手把手带您无忧上云