1.《新东方考研英语》 俞敏洪/乱序版 2015年2月第1版
1个list的单词
2.《c++语言程序设计》郑莉 董渊 何江舟 编著 清华大学出版社 2010年7月第4版
学习第十章泛型程序设计与c++标准模板库的20页内容
3.网站https://learnopengl-cn.github.io/intro/
学习基础3D绘图的内容,编写代码进行让3D物体旋转的测试。以及摄像机章节的一部分内容。
心得:
OpenGL
1.观察矩阵
glm::mat4 view;
// 将矩阵向要进行移动场景的反方向移动
view = glm::translate(view, glm::vec3(0.0f, 0.0f, -3.0f));
2.投影矩阵
glm::mat4 projection;
projection = glm::perspective(glm::radians(45.0f), screenWidth / screenHeight, 0.1f, 100.0f);
第一个参数定义fov的值,表示的是视野,并且设置了观察空间的大小。
第二个参数设置了宽高比,由视口的宽除以高所得。
第三和第四个参数设置了平截头体的近和远平面。通常设置近距离为0.1f,而远距离设为100.0f,以保证观察物体不被裁剪。
3.深度测试
glEnable(GL_DEPTH_TEST);//启用深度测试
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//在每次渲染迭代之前清除深度缓冲(否则前一帧的深度信息仍然保存在缓冲中)
代码运行结果如图:
C++
1.函数
1.s.begin()返回的是指向s第一个元素的迭代器,而s.end()返回的是指向s最后一个元素下一个位置的迭代器
相反的s.rbegin()是指向容器最后一个元素的逆向迭代器,s.rend()是指向容器第一个元素的前一个位置的逆向迭代器
2.s.erase(p)删除s容器中p所指向的元素,返回被删除的下一个元素的迭代器。此函数常在执行插入操作时使用,不要
忘记其自带一次后移的效果。
3.删除向量容器元素时,并不会释放空间,要释放多余空间需要用以下函数
vector<T>(s.begin(),s.end()).swap(s));
首先用s的内容创建一个临时的向量容器对象,再将该容器和s交换,这时s原先占有的空间已经属于临时对象了,该语句执行完成后
临时对象会被析构,空间被释放。
2.STL中三种顺序容器的特性比较