本文已参与[新人创作礼]活动,一起开启掘金创作之路
图形学的数学基础(四):向量叉积(Cross Product)
叉积
叉积是另一种向量乘积,与上节讲到的点积不同,叉积的结果是一个向量,该向量垂直于原始的两个向量,即垂直于原始两个向量所构成的平面。
定义

-
a×b将产生一个垂直于a和b所构成平面的向量,这样的向量可能有两个,彼此方向相反,朝向由右手螺旋定则判定,具体在后文会详细介绍。
-
a×b的长度等于a和b长度的乘积再乘以a和b之间角度的正弦值。
∣∣a×b∣∣=∣∣a∣∣∣∣b∣∣sinθ
实际上根据定义不难理解, a×b的长度等于由两个边a b所形成的平行四边形的面积。
A=bh=b(asinθ)=∣∣a∣∣∣∣b∣∣sinθ=∣∣a×b∣∣

性质
- 叉积交换的,实际上,它是反交换的(anticommutative)的:a×b=−(b×a)
- 向量自身的叉积等于零向量 a×a=0
- 叉积满足分配律:a×(b+c)=a×b+a×c
- 叉积满足结合律:a×(kb)=k(a×b)
右手螺旋定则
先将两向量移动到同一起点,右手四指从A转动到B,则拇指所指方向,即为结果向量的方向。
符合右手螺旋定则的坐标系称之为右手坐标系,即 x×y=z,否则为左手系。

x×y=+z
y×x=−z
y×z=+x
z×y=−x
z×x=+y
x×z=−y
几何意义
判定两向量的相对位置关系
向量叉积可以用于判定两个向量的相对位置关系,比如如果我们想知道一个向量在另外一个的左侧还是右侧,可以通过两个向量叉积结果的符号来判断。
a×b=+z
因此b在a的左侧

判定点是否在三角形内
分别使用三角形的三边向量 AB BC CA,叉乘三角形每个顶点与P点构成的向量,如果得到的三个结果向量方向一致,则认为P点在三角形 △ABC内,否则P点在三角形外。
AB×AP
BC×BP
CA×CP

构造三维直角坐标系
x×y=z
参考
《3D数学基础》图形和游戏开发(第二版)
GAMES101 -现代计算机图形学入门-闫令琪