学习日报 2018.8.14

1.《新东方考研英语》 俞敏洪/乱序版 2015年2月第1版

 1个list的单词

2.《c++语言程序设计》郑莉 董渊 何江舟 编著 清华大学出版社 2010年7月第4版

学习第十章泛型程序设计与c++标准模板库的15页内容

3.网站https://learnopengl-cn.github.io/intro/

 学些摄像机章节观察空间、Look At矩阵、方向上的自由移动

心得:

OpenGL

 1.摄像机位置

glm::vec3 cameraPos = glm::vec3(0.0f, 0.0f, 3.0f);

正z轴是从屏幕指向观察者,摄像机向后移动,就沿着z轴的正方向移动。

2.摄像机方向

glm::vec3 cameraTarget = glm::vec3(0.0f, 0.0f, 0.0f);

glm::vec3 cameraDirection = glm::normalize(cameraPos - cameraTarget);

由位置向量减去目标向量得到摄像机正z轴方向

3.右轴

通过方向向量和上向量叉乘得到

4.Look At矩阵

通过此矩阵获得观察目标的视角

float radius = 10.0f;

float camX = sin(glfwGetTime()) * radius;

float camZ = cos(glfwGetTime()) * radius;

glm::mat4 view;

view = glm::lookAt(glm::vec3(camX, 0.0, camZ), glm::vec3(0.0, 0.0, 0.0), glm::vec3(0.0, 1.0, 0.0));

此代码为随着时间进行转动的观察视角

5.通过添加键盘控制和用时间差控制移动速度即可完成在前后左右方向上的自由移动

代码运行结果如图(可通过WASD进行方向上的移动)

C++

1.关联容器每个元素都有一个键,元素顺序按键值升序排列。

2.二元组pair

template<class T1,class T2>

struct pair

{

  T1 first;      //第一元

  T2 second;    //第二元

  pair();      //默认构造函数

  pair(const T1 &x,const T2 &y);    //构造函数

  template<class U,class V>pair(const pair<U,V>&p);  //复制构造函数

};

函数s.insert(t)对与单重关联容器插入成功时,返回类型为pair<S::iterator,bool>。插入成功返回迭代器和true,

否则返回与t相同的元素和false。

与pair连用时:pair<set<double>::iterator,bool>r=s.insert(v);    //插入v

if(!r.second)

  cout<<v<<"is duplicated"<<endl;

猜你喜欢

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