What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
cg:books:3dprimer_2:chpt_2 [2021/09/01 10:33] – [叉乘的几何解释] codingharecg:books:3dprimer_2:chpt_2 [2021/12/16 13:07] (当前版本) – [Vectors] codinghare
行 1: 行 1:
 ======Vectors====== ======Vectors======
 //3D math primer chapter 2// //3D math primer chapter 2//
-=====+----
 Vector 在数学上和物理上有不同的解释。数学上强调向量是一组数字,物理上强调向量是一个几何实体,并在尽可能的避免用坐标系去表述向量。 Vector 在数学上和物理上有不同的解释。数学上强调向量是一组数字,物理上强调向量是一个几何实体,并在尽可能的避免用坐标系去表述向量。
 ====向量的数学定义==== ====向量的数学定义====
行 135: 行 135:
 {{ :cg:books:3dprimer_2:dot_product_geo_1_2.jpg?250 |}} {{ :cg:books:3dprimer_2:dot_product_geo_1_2.jpg?250 |}}
 可以看出来的是,点乘结果的方向始终是被投影的向量一致的。而当参与点乘的两个向量方向一致的时候,也就是向量求自身在自身上的投影的时候,我们得到的结果实际上是向量本身的 magnitude,即:$$v \cdot v = ||v||$$ 可以看出来的是,点乘结果的方向始终是被投影的向量一致的。而当参与点乘的两个向量方向一致的时候,也就是向量求自身在自身上的投影的时候,我们得到的结果实际上是向量本身的 magnitude,即:$$v \cdot v = ||v||$$
-==量的互换==+==求已知向量的平行/垂直分量==
 假设有单位向量 $\hat a$,任意长度的向量 $b$,用 perp 表示 $b$ 在竖直上的分量,para 表示 $b$ 在水平上的分量。根据前面提到的推论,则有: 假设有单位向量 $\hat a$,任意长度的向量 $b$,用 perp 表示 $b$ 在竖直上的分量,para 表示 $b$ 在水平上的分量。根据前面提到的推论,则有:
 $$b_{para} = \hat a \cdot b = (\hat a \cdot b) \cdot \hat a$$ $$b_{para} = \hat a \cdot b = (\hat a \cdot b) \cdot \hat a$$
行 141: 行 141:
 $$b_{perp} = b - b_{para} = b-(\hat a \cdot b) \cdot \hat a$$ $$b_{perp} = b - b_{para} = b-(\hat a \cdot b) \cdot \hat a$$
 \\ \\  \\ \\ 
 +<WRAP center round info 100%>
 +这一小节实际上是在利用点乘的性质来求已知向量的平行/垂直分量。首先利用点乘的结果是被投影(平行)分量的 magnitude 求出平行分量的长度,再与被投影向量的单位向量相乘得到方向,从而得到投影向量在被投影向量上的分量,也就是平行分量。\\ \\ 
 +得到该分量后,因为向量可以通过自身的水平分量和垂直分量相加得到(三角形法则),因此垂直分量只需要用向量减去水平分量即可。
 +</WRAP>
 +
 ==点乘的第二种几何解释== ==点乘的第二种几何解释==
 假设有单位向量 $\hat a$ 与 $\hat b$,且夹角为 $\theta$,根据点乘的投影解释,可以构造出一个三角形如下图: 假设有单位向量 $\hat a$ 与 $\hat b$,且夹角为 $\theta$,根据点乘的投影解释,可以构造出一个三角形如下图:
行 171: 行 176:
 新向量的 magnitude 按如下公式计算: 新向量的 magnitude 按如下公式计算:
 $$||a \times b||=||a||||b||sin\theta$$ $$||a \times b||=||a||||b||sin\theta$$
 +有意思的是,该结果正好等于 a、b 按平行四边形法则形成的四边形的面积:
 +{{ :cg:books:3dprimer_2:cross_product_geo2.jpg?500 |}}
 +假设 b 为底,那么 高 $h=||a||sin\theta$,面积的计算结果为 $||b||\cdot||a||sin\theta$,与之前的叉乘的结果正好符合。\\ \\
 +当 a、b 平行的时候,$sin\theta = sin(0) = 0$,因此两个平行向量的叉乘结果为一个**零向量**。几何上来说,因为零向量垂直于任意向量,因此可以解释该代数计算结果。
 +==叉乘结果的方向==
 +叉乘结果的方向根据坐标系的不同会有不同的计算方式。一般的方法是将参与运算的第二向量的尾部至于第一向量的头部,通过该方式来判断第一向量的旋转方向。在**左手坐标系**中:
 +  * 如果是**顺时针**方向,叉乘结果**指向我们自己**
 +  * 如果是**逆时针**方向,叉乘结果**指向屏幕里边**
 +**右手坐标系的结果与上述的结果完全相反**。
 +{{ :cg:books:3dprimer_2:cross_product_geo3.jpg?400 |}}
 +如果指定 $\vec{x},\vec{y},\vec{z}$ 为与坐标轴方向相同的单位向量,那么无论什么坐标系都适用于以下规则:
 +{{ :cg:books:3dprimer_2:cross_product_geo4.jpg |}}
 +===向量运算的性质===
 +{{ :cg:books:3dprimer_2:linear_algebra_identies.jpg |}}
 +====Refs====
 +  * [[https://zhuanlan.zhihu.com/p/35897775|向量范数与矩阵范数]]