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

向量和矩阵是游戏开发的必备基础。

好多小伙伴跟丹丹反映每次文章过长,太干

所以之后的推文,丹丹尽量再模块化。其实又长又干的文章要花费丹丹的不少心血,希望小伙伴们喜欢的话帮忙分享,或者给予点赞鼓励哦

好啦,来看知识点!

向量:有方向有大小的矢量。

游戏中速度、加速度、力、位移等就是使用向量来描述的。

此处大家需要注意的是,向(矢)量只要方向和大小不改变,可以移动到任意的位置,所以向量的起始点设置到原点,向量就可以直接使用如下形式来表示了:

所以如果有A点为(xa,ya,za),B点为(xb,yb,zb)

则我们的AB向量为(xb-xa,yb-ya,zb-za)

接着我们来看看向量的基本运算

向量加法

我们可以看做是首尾相接首尾接的一个运算法则

也可以看做是类似于力的合成的平行四边形法则运算:

向量取反

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

向量减法

向量取反后的加法

向量与标量的运算

求向量长度/求模

 

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

向量的单位化

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

向量点积

 

 

根据以上的公式可以看出,点积在游戏中可以用cos角度来判断两向量的夹角

当然向量的点积还可以做的事情就是求投影:

向量叉乘

向量的叉乘公式如下:

叉乘的结果是一个垂直于原来两向量所在平面的向量。根据左右手法则我们可以判断一个向量相对于另一个向量的左右方位。

其次可以利用叉乘得出点到线的距离:

好啦,一起来看看代码吧:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值