New程序媛OpenGL全解析之—向量

大家好New程序媛OpenGL全解析之—向量
文章图片


New程序媛OpenGL全解析之—向量
文章图片


本期视频的链接地址是:
https://www.bilibili.com/video/av23269538/
大家也可以直接在bi站首页搜索:New程序媛 ,即可看到相应视频New程序媛OpenGL全解析之—向量
文章图片

本期的代码因为已经给大家全部贴出了,所以不再另附资源,请大家动手独立完成。
丹丹今天要给大家带来的是向量的基本知识。配合视频一起看效果更佳哦~
向量和矩阵是游戏开发的必备基础。
好多小伙伴跟丹丹反映每次文章过长,太干New程序媛OpenGL全解析之—向量
文章图片
所以之后的推文,丹丹尽量再模块化。其实又长又干的文章要花费丹丹的不少心血,希望小伙伴们喜欢的话帮忙分享,或者给予点赞鼓励哦New程序媛OpenGL全解析之—向量
文章图片

好啦,来看知识点!
向量:有方向有大小的矢量。
游戏中速度、加速度、力、位移等就是使用向量来描述的。
此处大家需要注意的是,向(矢)量只要方向和大小不改变,可以移动到任意的位置,所以向量的起始点设置到原点,向量就可以直接使用如下形式来表示了:
New程序媛OpenGL全解析之—向量
文章图片

New程序媛OpenGL全解析之—向量
文章图片

所以如果有A点为(xa,ya,za),B点为(xb,yb,zb)
则我们的AB向量为(xb-xa,yb-ya,zb-za)
接着我们来看看向量的基本运算
向量加法
我们可以看做是首尾相接首尾接的一个运算法则
New程序媛OpenGL全解析之—向量
文章图片

也可以看做是类似于力的合成的平行四边形法则运算:
New程序媛OpenGL全解析之—向量
文章图片

向量取反
向量为(x,y,z)取反即为(-x,-y,-z)
向量减法

向量取反后的加法
向量与标量的运算
New程序媛OpenGL全解析之—向量
文章图片

求向量长度/求模


New程序媛OpenGL全解析之—向量
文章图片

New程序媛OpenGL全解析之—向量
文章图片

直接通过勾股定理来计算:

New程序媛OpenGL全解析之—向量
文章图片

向量的单位化
有一个特殊类型的向量叫做单位向量(Unit Vector)。单位向量有一个特别的性质——它的长度是1。我们可以用任意向量的每个分量除以向量的长度得到它的单位向量:

New程序媛OpenGL全解析之—向量
文章图片

向量点积


New程序媛OpenGL全解析之—向量
文章图片



根据以上的公式可以看出,点积在游戏中可以用cos角度来判断两向量的夹角
New程序媛OpenGL全解析之—向量
文章图片

当然向量的点积还可以做的事情就是求投影:
New程序媛OpenGL全解析之—向量
文章图片

向量叉乘
向量的叉乘公式如下:
New程序媛OpenGL全解析之—向量
文章图片

New程序媛OpenGL全解析之—向量
文章图片

叉乘的结果是一个垂直于原来两向量所在平面的向量。根据左右手法则我们可以判断一个向量相对于另一个向量的左右方位。
其次可以利用叉乘得出点到线的距离:
New程序媛OpenGL全解析之—向量
文章图片

好啦,一起来看看代码吧:
New程序媛OpenGL全解析之—向量
文章图片

New程序媛OpenGL全解析之—向量
文章图片

New程序媛OpenGL全解析之—向量
文章图片

New程序媛OpenGL全解析之—向量
文章图片

New程序媛OpenGL全解析之—向量
文章图片

ok~ 向量的基本知识今天就给大家介绍到这里。咱们动起手来码起来吧。


【New程序媛OpenGL全解析之—向量】丹丹期待大家的意见和建议,欢迎小伙伴们积极留言New程序媛OpenGL全解析之—向量
文章图片

    推荐阅读