学习日报 2018.8.13

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中三种顺序容器的特性比较

猜你喜欢

转载自www.cnblogs.com/jingrui/p/9471930.html
今日推荐