Vectors
- Usually written as or in bold a
- Or using start and end points = B - A
- Direction and length
- No absolute starting position
Vector Normalization
- Magnitude (length) of a vector written as
- Unit vector
- A vector with magnitude of 1
- Finding the unit vector of a vector (normalization): =
- Used to represent directions
Vector Addition
- Geometrically: Parallelogram law & Triangle law
- Algebraically: Simply add coordinates
Cartesian Coordinates
- X and Y can be any (usually orthogonal unit) vectors
在图形学,给定一个向量,一般默认是列向量,比如 A = ,可以通过互换转化为行向量 = 。把向量表示成直角坐标系的代数形式,一个好处是很容易计算它的长度。向量的长度 = 。
Vector Multiplication
Dot (scalar) Product
向量点乘的定义为: = ,由此可看出,两个向量点乘的结果是一个数。而向量点乘的一个运用是快速计算两个向量之间的夹角:。特别的,如果两个向量都是单位向量,则它们的点乘结果就是它们之间夹角的余弦:。
点乘的性质:
- 交换律:
- 结合律:
- 分配律:
二维坐标系中的点乘:
三维坐标系中的点乘:
点乘在图形学中可用于计算一个向量相对于另一个向量的投影(projection)
我们定义 为 在 上的投影,其中:
- 跟 同方向,即 = k
向量的投影可以分解一个向量,比如 可以分解为相互垂直的 和 。
点乘还可以用来判断前后的方向关系:如图七,假如以与 垂直的平面为界限,平面往上表示前面 (forward),向下表示后面 (backward)。则当某向量与 做点乘如果大于 0,则表示在前面,如 ;如果小于 0,则表示在后面,如 ;如果等于 0,则刚好在平面上。
同样的道理,点乘还可以判断两个向量在方向上有多接近。比如图七, 与 比较接近,点乘的结果会接近 1;如果方向远离 ,则跟 点乘的结果会变小,当方向完全跟 相反时,点乘的结果为 -1。
Cross product
- Cross product is orthogonal to two initial vectors
- Direction determined by right-hand rule
- Useful in constructing coordinate systems (later)
两个向量 和 的叉积 的结果是一个新的向量,该向量垂直于 和 所在的平面,其方向由右手定则确定。如图九, 产生的新向量的方向的确认方法为:伸出右手,食指指向 ,中指指向 ,大拇指与食指和中指所在平面垂直,则大拇指方向为 的方向。同样的,也有相对应的左手定则;不过为了方便,该课程讨论的坐标系均以右手定则为基准,即在三维坐标系中,如果 和 所在平面为 xy 平面,则 指向 z 轴正方向。
图九:右手定则 (https://en.wikipedia.org/wiki/Right-hand_rule)
根据右手定则,,因为两者方向正好相反,因此叉积不满足交换律,但是有这样的运算关系:。
叉积的性质:
叉积用代数来表示:
叉积可以用来判断两个向量的左右关系。如图十,假设 和 所在平面为 xy 平面,我们可以看到 在 的左边,这个在数字上应该怎么表示呢?我们只需要看 的结果即可。在这个例子里,结果是正的( 跟 z 轴正方向一致),因此 在 的左边。如果反过来看, 是不是在 的右边呢?计算 可知结果是负的( 跟 z 轴负/反方向一致),因此 在 的右边。
叉积还可以用来判断内外的关系。这一点在图形学里有相当广泛的应用,比如说:给定一个三角形 ABC 和一点 P,判断 P 是否在三角形内部。
以图十一举例,我们假设三角形 ABC 由三个向量 、 和 构成。由 的结果可知, 在 的左侧,即 P 在 的左侧;同理得知 P 也在 和 的左侧;因此 P 在三角形 ABC 内。即 P 要在三角形内的话,则 P 需要在三角形每条首尾相连组成的向量(逆时针或顺时针)的同一侧,否则 P 在三角形外。
用向量的叉乘可以定义一些互相垂直的轴,这些轴可以形成一个坐标系。比如定义 、、 三个单位向量,且这三个单位向量两两之间相互垂直。则它们有这些关系:
- (right-handed)
这样就可以把三维坐标系上的任意向量 分解到这 3 个轴上。
在 u 轴上的投影 。根据点乘的定义 ,因为 是单位向量,所以 ,所以 ,所以 。
类似地, 在 v 轴上的投影 ; 在 w 轴上的投影 。
则根据向量加法得 。
* 未经同意不得转载。