本文标题:WebGL第十五课:直角坐标系中向量应用-位置和位移| 8月更文挑战
引子
在这里,不得不再次提一次向量:一堆数,放在一起而已。
为什么总是要强调这一点,或者说我这个说法到底是不是对的呢?
如果你用过c++,肯定知道里面的vector,vector的含义就是向量,而c++中的vector基本上就是一个动态的数组。这与我们的说法是一致的。
之所以强调这一点,是为了简化我们的思维,不要一提起向量,满脑子都是图形学里的那些概念,或者中学里学过的那些概念,那些只不过是向量这个数学工具在特定领域的实际应用而已。
假设我们的目标是熟练掌握向量这个工具的话,那么:
如果我们一提起向量,就想到一堆数竖着放,这个画面感的话,我们就初步成功了;
然后,脑海里就要有向量加减法,向量数乘这两个概念和相应的画面。我们就离目标更近了一步;
接下来是啥,当然是向量的线性组合,这其实是由向量加减法和向量数乘组合起来的一种运算,依然要在脑海里有印象,请记得小明和小红把零食分给小刚的故事。
好了,到这里,我们课程中向量的概念就回顾完了。上面不清楚的小伙伴可以翻到前面的课程先了解一下。
二维直角坐标系中的向量
根据我们对于向量的含义,任何一个二维直角坐标系中的一个点的坐标,都是向量。
有小伙伴要懵了:"我们老师说过,点不是向量,你得画上箭头才是向量!!!"
先把定义写出来:一堆数,放在一起。先不要关注竖着写,横着写,那是为了排版。
回答:
- 点不是向量,对的;
- 但是
点的坐标确实就是向量,因为就符合我们对于向量的定义,符合定义那就是向量。
我们写两个坐标看看:
- (0, 1)
- (1.5, 0.8)
- (3.8, 10)
各位看看,上面三个坐标,写出来,是不是符合我们的定义呢。老符合了,对吧。
我们在二维直角坐标系里面,画出上面三个向量看一看:
我们发现了什么,每一个向量,都能在二维坐标系里画出来成为一个点。
每一个点,也能用坐标表达式,写成一个向量。
这是我们初步把向量和二维直角坐标系联系起来。
研究距离-向量的模
我们在上图研究一下,ABC三个点,到原点的距离。用肉眼可见的感觉,A是最近的,B是其次,C最远,对吧。
既然引进了向量,那么我们研究这个问题就要用到向量。
ABC三个点,他们的坐标,都是向量。任一点的坐标给出来是(x, y)的话,那么
而根据坐标和勾股定理,我们可以得出这个点到原点的距离:
我们向量吸取这个式子,称之为 向量的模。
一句话说明一下:将向量看成坐标,画在直角坐标系里成为一个点,这个点到原点的距离,就是向量的模。
也就是说,我们可以利用向量的模来解决直角坐标系中的距离问题。
A和B的距离
我们上面给出了向量的模,能够解决坐标系中任一点到原点的距离问题。
但是好像不能解决,任一点到其他点(非原点)的距离问题。
这怎么办呢?
不急,我们先从勾股定理入手,这是我们实打实的求距离的老办法了。
- A点坐标假设是(x, y)
- B点坐标假设是(a, b)
根据勾股定理得出,AB距离为:
观察上面的式子,发现和向量的模的式子形式上很像。
不妨这样来看,把x-a 和 y-b组合起来,看做一个新的向量:
(a-x, b-y)
那么上面的式子,就变成了,求这个向量的模。
我们带入AB的数据,把这个向量写出来如下:
(1.5, -0.2)
我们也将这个向量,画到坐标系中,如下图D:
我们发现,这个点,画出来之后,和AB真实八竿子打不着啊。
那么为什么这个到原点的距离,就是AB之间的距离呢。
看下图,一目了然:
做两条辅助线之后,我们的视野就清晰了。我们马上进行以下推导逻辑:
- D点到原点的距离,就AB之间的距离
- D点坐标
向量的模,就是AB之间的距离
问题就来了,D点向量是如何由AB得来的呢?
再观察一下D点向量的式子:(a-x, b-y)
我们再画一张图:
很清晰了,原来,向量减法有这个用处!
到此,我们可以用`向量`,来解决坐标系中,`任意两点`之间的`距离`问题了。
向量在坐标系中的另一种画法:矢量箭头
我们一般人的直觉就是,坐标系中的点,一定就是一个位置。
这是非常好的直觉。也请你不要改动这个直觉。
但是,上例中的D点,这个位置,很不舒服给人的感觉,因为D点的向量,代表着从A到B的一个算距离的过程。
也就是说,上例中的D点,这个位置本身没什么实际含义。但是向量画出来,确实就是在D点。
好吧,我们重新画一下这个例子:
观察,A到B的矢量箭头图形。这就是我们D点向量的矢量箭头画法。
矢量箭头画法的好处一目了然:
- 有头有尾
- 有方向
- 还有长度
比较一下,画点的劣势:
-
不能代表头尾,因为我们光看D点,看不出,出发点是A点。
至此,向量是有方向的这个说法,就出来了。
对于坐标系中向量的总结
我们以后再观察坐标系点的时候,一定要有两种思维:
-
- 这个点代表一个位置 (例如A点)
-
- 这个点代表两点之间的位移(例如D点)
而根据一个点的坐标,可以写成向量:
-
- 某个向量可以代表一个位置(A点坐标向量)
-
- 某个向量可以代表两点之间的位移(D点坐标向量)
上面四点,就是核心要记住的东西。
我们在实际应用的时候,这两种思维经常交叉穿梭,只要头脑清醒就没问题。
一个小例子,加强理解
小明从 A点(1, 2) 出发开始跑步
他跑的位移,我们最后用画成点,是B点(3,4)
问:小明最后到达了C点,C点的坐标是什么?
解析:我们分析问题之前,先看每个点,到底是表达了位置,还是位移。
- A点很明显,代表了小明的初始位置。
- B点代表了小明的位移。
- C点代表了小明的最后的位置。
很清晰了,我们在图中画出来:
首先根据B点代表位移,而位移在前面我们用的向量减法,如下:
B = C - A
换一下式子两边的位置,根据加法的交换性:-->
C = A + B
然后根据向量加法的式子,得出C点坐标为(4, 6)。
正文结束,下面是答疑
小能能说:上面的例子,小明跑步这个。其实就是把OB这跟虚线,平移到A点那里,就得出C点了吧?
-
答:对的。但是这个搞法,是为了辅助理解,是一种几何上的搞法。