‫你好, 欢迎｡
‫在这节课中,
‫我们会尝试更多地了解这些向量结构体, 以及支持它们的数学原理,
‫这样在课结束时, 你们会对向量的加法和减法, 以及它们与浮点数的乘法感到轻松自如｡
‫我们开始吧｡
‫所以很快, 我们就要开始把冲量设定在正确的旋转方向上｡
‫但在此之前, 我们需要对矢量背后的数学有更多的了解｡
‫现在, 在这个视频中, 我将给你们一个关于向量数学的短暂的旅程｡
‫但是如果你想要一些更深入的解释, 那么我们有一整套关于游戏开发的数学课程, 我强烈推荐｡
‫向量本质上是一个数学概念, 当你把它归结为它们的实际含义时, 它们是相当简单的｡
‫向量只是3D空间中的一个方向, 它是一个大小, 或者用数学术语来说, 是一个大小｡
‫现在这一切都很好, 但当它真正在计算机上以编程方式表示时, 它甚至更简单｡
‫它本质上就是三个浮点数, X, A, Y, Z分量,
‫完美地代表了一个三维向量｡
‫让我们来看看二维空间中的矢量, 因为这里有一个二维屏幕｡
‫我给你看会更容易些｡
‫假设我们有一个X和Y分量, 我们从00开始｡ 在这个例子的右上角｡
‫我们想在这个二维空间中定位一个角色｡
‫我们可以有一个位置向量, 它指向角色的位置, 长度从00开始｡
‫一直到角色的位置｡
‫这可以被分解成它的组成部分｡
‫所以你可以有一个X部分和一个Y部分, 就像你可能期望的那样, 以及我们在虚幻中的水平是如何做的｡
‫现在我们能做的就是把一个运动向量应用到这个位置向量上, 这样我们就能得到另一个向量,
‫它有这个方向和这个大小, 我们可以把这两个向量加在一起, 得到一个新的位置,
‫就像这样｡
‫所以这看起来像这样, 基本上是位置加上移动向量｡
‫所以把这两个向量加在一起, 得到一个新的位置向量｡
‫在数学层面上, 我们只是简单地得到新的位置｡
‫我们把原始位置的X位置加起来, 加上移动的X位置, 再加上Y位置｡
‫让我们再多看一下向量的加法和减法｡
‫实际上我们是说如果我们有一个像这样的向量A和一个像这样的向量B, 那么把它们加在一起就给予了这个向量｡
‫假设我们把它们加在一起得到一个向量C, 那么向量C就是一个指向目的地的箭头｡
‫基本上, 你把这些向量首尾相连, 所以你的顺序并不重要｡
‫顺便说一下, 你可以把B放在第一位, 也可以把a放在第一位｡
‫你会得到同样的位置, 向量C, 它直接指向最终的目的地,
‫就像走捷径一样, 减法非常相似｡
‫如果你得到了这样的向量A和向量B,
‫那么减法只需要取一个负向量B, 它是一个指向与法向量B相反方向的向量,
‫然后你可以继续把它们加在一起, 就像这样, 向量C指向这个位置｡
‫现在让我们来看看向量乘法, 特别是将向量乘以浮点数｡
‫如果我们把a乘以2, 给予向量B, 会发生什么？
‫在这种情况下,
‫它实际上是相当简单的, 因为你所要做的就是把两个向量A加在一起, 得到一个两倍长的向量B｡
‫它的大小是向量A的两倍, 事实上, 这里你不需要被限制为整数｡
‫你可以有一半的向量, a的长度是它的一半｡
‫你可以有5个｡ 向量A的值是5｡
‫6倍于向量A的长度, 但方向最终不会改变｡
‫它将始终具有相同的向量方向｡
‫所以让我向你们挑战来个寻宝游戏｡
‫我定义了A, B, C向量.
‫我已经给了你一个直观的表示, 箭头是一个方向上的大小｡
‫我也给了你们它们的数值表示,
‫我想让你们做的是, 假设我们的角色在这里, 在我们的xy轴网格上,
‫我们得到了这里给出的神秘寻宝方向, 我们得到了正三乘B-C, 这就是你们能找到宝藏的地方｡
‫看看你能不能弄清楚这个角色该往哪里走｡
‫要找到宝藏, 暂停视频, 然后尝试一下｡
‫好吧, 我会的
‫欢迎回来｡
‫首先, 我们把A加进去｡
‫我们不需要做任何乘法运算, 所以我们可以把A加到这里.
‫然后我们要加上B, 但是我们要加三次因为它乘以了三然后我们要减去C,
‫所以我们要往负的方向去, 或者C或者你可以看到我把箭头放反了,
‫所以头对头而不是头对尾｡
‫这实际上是一回事, 因为它的方向相反｡
‫你可以看到我们已经到了这个位置, 实际上合成矢量就是这个｡
‫这是所有向量相加的结果｡
‫所以这是新的, 但它是新的位置, 它是实际的坐标, 因为我们开始的时候并不在0, 0｡
‫实际坐标是51x5, y轴上是1, 总的合成移动矢量是103｡
‫你可以通过把X和Y分别加在一起并适当相乘来验证这一点,
‫你最终得到了这个运动矢量, 就是网格上显示的蓝色矢量｡
‫希望这能让你们对向量的加法, 减法和乘法有一点初步的了解.
‫在下一讲中｡
‫我们会派上用场的｡
‫我会看到你在那里｡