![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机图形学
deniece1
这个作者很懒,什么都没留下…
展开
-
GLUT键盘控制(glutKeyboardFunc和glutSpecialFunc)
...转载 2019-12-24 21:03:09 · 5474 阅读 · 0 评论 -
对B样条的理解和整理
B样条曲线上的每一个点其实是:所有控制点的一个加权平均。https://www.cnblogs.com/icmzn/p/5100761.html原创 2019-12-23 22:29:48 · 2311 阅读 · 0 评论 -
倒水问题
方法1:取模参考(漫画图解)方法2:原创 2019-11-09 11:37:55 · 254 阅读 · 0 评论 -
OpenGL中的reshape函数(整理)
reshape函数怎么用最佳答案2010-11-30 回答是不是问 OpenGL / GLUT 方面的问题?GLUT里 glutReshapeFunc(reshape); 定义 当窗的形状改变事件发生时 调用的处理函数 reshape。shape 是形状。reshape 是当形状改变时,做些什么来修正窗内的图形显示。这由程序员自己决定,例如,你可以考虑图形长宽尺度按窗的长宽变化,按比...原创 2019-10-30 15:15:57 · 5531 阅读 · 0 评论 -
glReadPixels的用法和说明
GPU渲染完数据在显存,回传内存的唯一方式glReadPixels函数。。。glReadPixels:读取一些像素。当前可以简单理解为“把已经绘制好的像素(它可能已经被保存到显卡的显存中)读取到内存”。3、glReadPixels的用法和举例3.1 函数的参数说明该函数总共有七个参数。void glReadPixels(GLint x, ...原创 2019-10-23 15:17:59 · 34401 阅读 · 5 评论 -
GLUT及其函数的用法整理
...转载 2019-10-19 20:53:29 · 9831 阅读 · 0 评论 -
glutSwapBuffers函数用法
文章来源:http://baike.baidu.com/link?url=F-0esBBzkOr-JXsCG8pqUCD84ZQHWzCMbSHPTYsdtHkvZuUVGIoKmZJk6Hf9dGIwCox...转载 2019-10-19 20:48:54 · 1549 阅读 · 0 评论 -
VS2017一次性运行多个项目的方法
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-10-19 09:52:45 · 1317 阅读 · 0 评论 -
OpenGL中不可以有两个以上myDisplay函数,在主函数中生效的是最后调用的那个
OpenGL中不可以有两个myDisplay函数,在主函数中生效的是最后调用的那个例如,自己写了两个display函数,1和2,想要在主函数中一次调用它们,来实现同时显示两个display绘制的图形,结果发现不行,先调用diaplay1,再调用dispaly2,结果只会显示dispaly2的绘制的图形。int main(int argc, char* argv[]){ glutInit(&...原创 2019-10-17 22:57:05 · 957 阅读 · 1 评论 -
OpenGL中glTranslate*(),glRotation*(),glScale*()函数的用法(*是参数数据类型)
首先注意,VS中使用上面的函数时**,函数名里面要指明参数的数据类型**,是float还是double,分别对应glScaled()和glScalef(),否则,直接调用glScale()会报错的,编译不通过。函数用法:glTranslate*(x,y,z)是平移操作,x,y,z指定沿着世界坐标系的x,y,z轴的平移量。glRotation*(x,y,z)是做旋转的,第一个参量是angle,...原创 2019-10-17 22:36:28 · 2503 阅读 · 0 评论 -
OpenGL中运行结果是白屏,白色窗口的问题解决方法之整理
解决方法1:查看是否是由于在myDisplay函数中没有或者忘记加==glFlush()==这一语句,导致绘制的图形不能立即显示在屏幕上所引起的。自己运行结果如下,右面的黑色是向右拉伸窗口才显示出来的,就是由于自己忘记加上glFlush()了。示例:(来源链接)opengl程序问题,为什么只有白屏? 20程序如下:#include <windows.h>#include...原创 2019-10-17 19:43:18 · 5526 阅读 · 1 评论 -
OpenGL中把设备坐标系(屏幕)的原点转为左上方的调整方法(使用glOrtho2D函数,合理设置参数)
OpenGL中用鼠标交互时,记得按需要把设备坐标系的原点转为左上方的。用函数:glOrtho2D函数函数原型为void gluOrtho2D(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top)说明:gluOrtho2D(0,400,0,300),之后在绘制点、线的时候,指定坐标,坐标范围应该为X轴上[0,400],Y轴上[...原创 2019-10-16 21:33:26 · 2483 阅读 · 0 评论 -
OpenGL中关于坐标系原点在左上角还是左下角的一些整理
各轴之间的顺序要求符合右手法则,即以右手握住Z轴,让右手的四指从X轴的正向以90度的直角转向Y轴的正向,这时大拇指所指的方向就是Z轴的正向.这样的三个坐标轴构成的坐标系称为右手空间直角坐标系.与之相对应的是左手空间直角坐标系。1.OPENGL设备坐标系(dns)是左手坐标系,屏幕坐标系原点在左下角向上向右增加OPENGL屏幕坐标系原点在左下角向上向右增加,D3D屏幕坐标系原点在左上角向下向右增...原创 2019-10-16 18:16:04 · 6933 阅读 · 0 评论 -
右手坐标系和左手坐标系(转)很详细,有图示
今天记录一下一些基本的数学知识,左手坐标系和右手坐标系。这些对于搞图像开发或者游戏开发的朋友来说,应该是很基础的东西,不过对于大部分人来说还是比较陌生的知识。之所以看这方面资料主要是因为在使用Android Camera使用Matrix的过程中,发现需要一些数学理论支持才能理解。这是为了后面使用Android Camera和Matrix的基础。1、空间直角坐标系下面摘录一段百科的解析,这些都是...转载 2019-10-16 18:03:15 · 12580 阅读 · 0 评论 -
OpenGL画矩形函数:glRectf,四个参数分别表示了位于对角线(左下到右上)上的两个点的横纵坐标
OpenGL画矩形函数:glRectfglRectf:画一个矩形,四个参数分别表示了位于对角线(左下到右上)上的两个点的横纵坐标例子:// 画矩形.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include "pch.h"#include <iostream>#include<GL/glut.h> //它自动包含了<G...原创 2019-10-10 15:54:12 · 6532 阅读 · 0 评论 -
Glut处理鼠标事件:函数glutMouseFunc
检测鼠标单击要想在OpenGL中处理鼠标事件非常的方便,GLUT已经为我们的注册好了函数,只要我们提供一个方法。使用函数glutMouseFunc,就可以帮我们注册我们的函数,这样当发生鼠标事件时就会自...转载 2019-10-09 14:58:10 · 2524 阅读 · 2 评论 -
OpenGL透视投影函数gluPerspective的参数含义之解析(图示)
gluPerspective这个函数指定了观察的视景体(frustum为锥台的意思,通常译为视景体)在世界坐标系中的具...转载 2019-10-05 18:49:32 · 5205 阅读 · 0 评论 -
实验2 直线生成算法实现 (利用OpenGL实现直线光栅化的DDA算法)
// 实验2 Bresenham算法画直线.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include "pch.h"#include<gl/glut.h>#include <iostream>void LineDDA(int x0, int y0, int x1, int y1){ int x; float dy, d...原创 2019-10-05 11:34:21 · 3876 阅读 · 0 评论 -
OpenGL中gluOrtho2D、glViewport、glutInitWindowSize区别与关系
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...原创 2019-10-05 10:30:18 · 1100 阅读 · 0 评论 -
OpenGL画矩形,三角形,点(第一个图形学的小程序)
程序:#include<GL/glut.h> //它自动包含了<GL/gl.h>和<GL/glu.h>void myDisplay(void){ glClearColor(0.0,0.0,0.0,0.0); //将“清空颜色”设为黑色 //在RGB模式下,使用glClearColor来指定“空”的颜色,它需要四个参数,其参数的意义跟 //glColo...原创 2019-09-17 22:43:05 · 857 阅读 · 0 评论 -
glBegin()和glEnd()之间可调用的函数
原 glBegin()和glEnd()之间可调用的函数 ...转载 2019-09-18 14:13:41 · 548 阅读 · 0 评论 -
VS2017 配置 OpenGL 环境
Visual Studio Community 2017 配置 OpenGL 环境 安装 VS Community 2017OpenGL 库需要绑定相应的语言环境,这里本人选择的Windows下的VC++,它被包含于Visual Studio中.下载VS 2017:VS Community 2017 官...转载 2019-09-19 09:01:27 · 1721 阅读 · 2 评论 -
VS2017学习OpenGL时遇到的一些小问题和解决方法
1.在VS2017下,需要包含的头文件是<gl/glut.h>在VC6.0下,需要包含的是<GL/glut.h>,也就是VS2017的开头不是大写2.要包含#include<pch.h>头文件,才能运行成功而且,它要被包含在最前面,在<gl/glut.h>的前面,否则编译不通过pch是一个在你创建项目时编译器自动生成的文件,称为预编译文件。打...原创 2019-09-19 10:11:31 · 538 阅读 · 0 评论 -
OpenGl的glMatrixMode()函数理解
glMatrixMode()函数的参数,这个函数其实就是对矩阵接下来要做什么进行一下声明,也就是在要做下一步之前告诉计算机我要对“什么”进行操作了,这个“什么”在glMatrixMode的“()”里的选项(参数)有3种模式: GL_PROJECTION 投影, GL_MODELVIEW 模型视图, GL_TEXTURE 纹理.如果参数是GL_PROJECTION,这个是投影的意思,就是要对投影相...原创 2019-10-01 11:44:53 · 414 阅读 · 0 评论 -
OpenGL之glMatrixMode函数的用法
函数原型: void glMatrixMode(GLenum mode)参数说明: ...转载 2019-10-01 11:52:10 · 815 阅读 · 0 评论 -
向量积(叉积)和数量积(点积)的区别和联系之解析
向量积,数学中又称外积、叉积,物理中称矢积、叉乘,是一种在向量空间中向量的二元运算。与点积不同,它的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量和垂直。其应用也十分广泛,通常应用于物理学光学和计算机图形学中。表示方法两个向量a和b的叉积写作a×b(有时也被写成a∧b,避免和字母x混淆)。定义向量积可以被定义为:|a×b|=|a||b|sin<a,b>。模长...原创 2019-10-03 10:06:59 · 18190 阅读 · 0 评论 -
矩阵中的主元是什么意思(在消去过程中起主导作用的元素)
主元(pivot element),一种变元。指在消去过程中起主导作用的元素。主元就是在矩阵消去过程中,每列的要保留的非零元素,用它可以把该列其他消去在阶梯型矩阵中,主元就是每个非零行第一个非零元素就是主元...原创 2019-10-03 11:31:35 · 26123 阅读 · 0 评论 -
矩阵乘法的性质(注意:一般不满足交换律)
基本性质乘法结合律: (AB)C=A(BC).乘法左分配律:(A+B)C=AC+BC乘法右分配律:C(A+B)=CA+CB对数乘的结合性k(AB)=(kA)B=A(kB).转置 (AB)T=BTAT.*矩阵乘法一般不满足交换律(是因为A的行数和B的列数一般不同)。注:可交换的矩阵是方阵。...原创 2019-10-03 11:38:20 · 90275 阅读 · 4 评论 -
关于OPENGL的各个变换的顺序
OPENGL中的各种坐标变换是很让人头疼的,而且坐标变换实质是矩阵相乘,所以不搞清楚其顺序就如同瞎子摸黑一般。一样要讲一下网络上的各个“高人”文章的高深,拷贝粘帖的就不说了,不少文章其实都没细到讲述整个这几个变换的实际顺序,比方说哪个函数先哪个函数后。1,在OPENGL的红宝书里面,首先提出了全局固定坐标系统和局部移动坐标系统,这里这两个坐标系的代码实际上是差不多的。区别在于,全局用的是多个矩阵...转载 2019-10-04 19:45:02 · 704 阅读 · 0 评论 -
OpenGL交互——菜单控制(基础教程)
 ...转载 2019-10-04 20:07:21 · 3997 阅读 · 0 评论 -
OpenGL教程——GLUT初始化
在这个部分我们将在我们的程序里建立一个main函数,这个main函数将完成必须的初始化和开启事件处理循环。所有的GLUT函数都有glut前缀并且那些完成一些初始化的函数有glutInit前缀。你首先要做的是调用函数glutInit()。Void glutInit(int*argc,char**argv);参数:Argc:一个指针,指向从main()函数传递过来的没更改的argc变量。Arg...转载 2019-10-04 20:36:11 · 1206 阅读 · 0 评论 -
OpenGL初学时遇到的一些常见的函数之解析
1.问:openGL中glutReshapeFunc与glutDisplayFunc的区别如题 窗口创建初和 每次改变大小这两个都会执行 他们有什么区别?可以不用glutDisplayFunc吗?答:glutReshapeFunc是窗口改变的时候调用的函数,在这个里面可以根据缩放后的窗口重新设置camera的内部参数,比如横纵比啥的,而glutDisplayFunc是显示的时候调用,可见改变...原创 2019-10-04 21:05:56 · 2129 阅读 · 0 评论 -
OpenGL中的着色模式GL_SMOOTH与GL_FLAT
glShadeModelvoid glShadeModel ( GLenum mode)是OpenGL1.0提供的接口。作用是设置着色模式。参数mode可以是GL_SMOOTH(默认值)或GL_FLAT。采用恒定着色时(即GL_FLAT),使用图元中某个顶点的颜色来渲染整个图元。在使用光滑着色时(即GL_SMOOTH),独立的处理图元中各个顶点的颜色。对于线段图元,线段上各点的颜色将根据两个...原创 2019-10-05 10:13:29 · 3747 阅读 · 0 评论 -
OpenGL画圆
画圆:/*正四边形,正五边形,正六边形,……,直到正n边形,当n越大时,这个图形就越接近圆当n大到一定程度后,人眼将无法把它跟真正的圆相区别这时我们已经成功的画出了一个“圆”(注:画圆的方法很多,这里使用的是比较简单,但效率较低的一种)*/程序:#include <GL/glut.h> #include <math.h>const int n = 6;...转载 2019-09-17 22:37:56 · 10550 阅读 · 1 评论