WebGL第十六课:直角坐标系中的位移详解| 8月更文挑战

542 阅读3分钟
本文标题:WebGL第十六课:直角坐标系中的位移详解| 8月更文挑战

引子

上次课提到了位移,但是并没有给出一个标准的定义,这是不好的。这可能让人产生不正确的思维,好像位移代表了某人或者某个物体在平面上的移动路径

这是不对的,位移不能代表移动路径,自然的,向量也不能代表移动路径

位移的定义

平面上有两个点A和B,我们将这两个点之间的位移向量也画了出来,如下图:

16-1.png

这个向量画在这, 很容易就产生一个错误的想法:

一个蚂蚁沿着这个线,从A爬到B点, 这就叫位移。【X

什么是对的呢:

一个蚂蚁,从A出发,无论中间他怎么爬,反正最后到了B点,这才是位移。【✔️

也就是说,两点间的位移代表的是初始化最终态之间的位置变动,不包含中间过程

用一个实际的例子:你从家里出发去公司,你路上绕来绕去,一会公交,一会地铁,最终到了公司,那么你整个的位移,就是【】和【公司】这两个位置之间的事情,和你路上没啥联系。

点通过位移变成另一个点

根据上面位移的概念,很容易得出:

一个点A,可以通过相应的位移,得出另一个点B。

而位移可以通过向量来表示,那么也就是说,一个点A可以通过加上某个向量,得出另一个点B。

这有啥用呢?

在最前面的几次课,我们使用 WebGL 画了一个圆。好几百个点,对吧。

如果我们想移动这个圆的圆心,我们就可以将这好几百个点,同时加上某个向量,进而达到我们的目标。

用向量加法来表达位移

其实用向量来表达位移是很简单的:

(12)+(23)=(35)\left(\begin{array}{cc} 1\\ 2\end{array}\right) + \left(\begin{array}{cc} 2\\ 3\end{array}\right) = \left(\begin{array}{cc} 3\\ 5\end{array}\right)

上面这个式子,就是说,一个点 (1, 2) 经过 (2, 3)的位移,得到了 点(3, 5)

也就是说,向量加法,本身就能代表点的位移

写成一般表达式:

(xy)+(ab)=(x+ay+b)\left(\begin{array}{cc} x\\ y\end{array}\right) + \left(\begin{array}{cc} a\\ b\end{array}\right) = \left(\begin{array}{cc} x+a\\ y+b\end{array}\right)

一个综合例子(向量减法向量的模)

假如你在打dota,你自己是兔子,你在A(2, 2)点的时候,中了血魔大招,你虽然及时停下了脚步,但是你的队友是屠夫,他一钩子就拉住了你,并且将你勾到他身边,也就是B(-2, 1)点。假设血魔大招,每一个单位掉1000滴血,问,你最后掉了多少血?(无视所有防御,护甲,魔抗等,简化计算)

解答,只要算出,从你到屠夫之间的位移,然后把长度算出来就好了。

16-2.png

(21)(22)=(41)\left(\begin{array}{cc} -2\\ 1\end{array}\right) - \left(\begin{array}{cc} 2\\ 2\end{array}\right) = \left(\begin{array}{cc} -4\\ -1\end{array}\right)

也就是你的位移是

(41)\left(\begin{array}{cc} -4\\ -1\end{array}\right)

根据这个向量的模的公式,计算得出长度:

d=174.12 d = \sqrt{17} ≈ 4.12

根据上面给的伤寒值:你最后掉血 4.12 * 1000 = 4210

不好意思,你回泉水休息一下吧。




正文结束,下面是答疑
小瓜瓜看了本次课,啥也没说,直接走起搞一局去了
  • 答:小瓜瓜并没有在玩游戏,他只是去实践一下向量和位移的概念了。