一、向量
目标:
- 向量的定义和表示方式。
- 向量的标准化。
- 向量的运算,包括加减、数乘、点乘、叉乘
- 坐标系和齐次坐标系
- XNA库中向量的表示和操作方法
1.1 向量的概念
只有大小的量叫做标量(Scalar);既有大小又有方向的量叫做向量(Vector);
由定义可知:向量与位置无关,即处于不同位置的两个向量,只要大小和方向相同,我们就是说他们相等。
1.1.1 向量的表示
向量最初被应用于物理学,数学中的向量是从复数中引入的。在数学中,向量有以下三种表示形式:
a. 几何表示:规定了起点和终点的有向线段。
b. 坐标表示:在坐标系中平移向量,使向量的起点与原点重合,此时向量终点的坐标用于表示改向量。
在坐标表示形式中,向量和点的表示形式没有差别,都是形如 a=(x,y) a = ( x , y ) 或 b=(x,y,z) b = ( x , y , z ) 的形式,因此需要根据上下文理解。
而齐次坐标的表示就是为了解决这样的歧义,该表示方式通过增加一个维度来标识点或向量。
c. 线性组合表示: a=ax×i+ay×j+az×k a = a x × i + a y × j + a z × k 其中 i,j,k i , j , k 表示单位向量,这种表示方法与坐标表示是对应的。
1.1.2 左手坐标系与右手坐标系
三维空间有多种表示方法,最常用的方法是笛卡尔坐标系。三维笛卡尔坐标系基于三条相互垂直的坐标轴:x轴、y轴、z轴。每条坐标轴都有原点、正方向、单位长度三要素。根据三条坐标轴之间的相对位置,有两种三维笛卡尔坐标系:左手坐标系(LHS)和右手坐标系(RHS)。
左手坐标系:当左手拇指指向z轴,其余四指指向x轴、并能够扫向y轴时,该坐标系称为左手坐标系。
1.2 向量的长度及标准化
1.2.1 向量的长度
在几何中,向量的长度(大小)叫做向量的模,也叫做向量的范数。对于向量 u=(x,y,z) u = ( x , y , z ) ,其模可以记作 ||u|| | | u | | :
1.2.2 向量的标准化
长度为1的向量叫做单位向量,向量的标准化就是对向量进行缩放,使其变为单位向量。通常在不关心向量长度而只关注向量方向的情况下进行标准化操作。对于给定向量 n=(x,y,z