向量
- 向量的两个重要属性:长度 和 方向
- 向量属性中不含有位置信息
向量的作用
- 向量在具有长度和方向的物理建模中具有巨大作用
向量的操作
- 两个向量只要长度和方向相同,无论起点是否相同,我们认为二者相等,且两者彼此平行。
- 向量可以进行平移
向量表示
- 通常使用小写粗体表示向量,有时也会使用大写粗体
- 2D的向量
- 3D的向量
- 4D的向量
特殊向量
- 零向量
- ``标准基向量:``
向量处于标准位置
- 当某一向量起始端和坐标原点重合时,我们称该向量处于标准位置,我们就可以使用向量的终点坐标来描述处于标准位置的向量,如图中向量
- 用于描述向量的坐标,称为分量,如图中p坐标
点和向量区别
- 点是描述坐标系的一个位置
- 向量描述了长度和大小
左手直角坐标系和右手直角坐标系
- 二者差距在于z轴的正方向上,左手坐标系z轴正向穿入纸面,右手相反。
- 左手直角坐标系 和 右手直角坐标系
D3DX库
- 类D3DXVECTOR3表示3D空间的向量, D3DXVECTOR2,D3DXVECTOR4分别表示2D,4D向量
- D3DXVECTOR3代码
typedef class D3DXVECTOR3 : public D3DVECTOR
{
public:
D3DXVECTOR3();
D3DXVECTOR3(CONST FLOAT *);
D3DXVECTOR3(CONST D3DVECTOR&);
D3DXVECTOR3(FLOAT x, FLOAT y, FLOAT z);
// casting
operator FLOAT* ();
operator CONST FLOAT* () const;
// assignment operators
D3DXVECTOR3& operator += (CONST D3DXVECTOR3&);
D3DXVECTOR3& operator -= (CONST D3DXVECTOR3&);
D3DXVECTOR3& operator *= (FLOAT);
D3DXVECTOR3& operator /= (FLOAT);
// unary operators
D3DXVECTOR3 operator + () const;
D3DXVECTOR3 operator - () const;
// binary operators
D3DXVECTOR3 operator + (CONST D3DXVECTOR3&)const;
D3DXVECTOR3 operator - (CONST D3DXVECTOR3&)const;
D3DXVECTOR3 operator * (FLOAT)const;
D3DXVECTOR3 operator / (FLOAT)const;
friend D3DXVECTOR3 operator * (FLOAT, CONST struct D3DXVECTOR3&);
BOOL operator == (CONST D3DXVECTOR3&) const;
BOOL operator != (CONST D3DXVECTOR3&) const;
~D3DXVECTOR3();
}D3DXVECTOR3, *LPD3DXVECTOR3;
- D3DVECTOR代码
typedef struct D3DVECTOR {
float x, y, z;
}D3DVECTOR;
专业词汇
- location 位置
- component 分量
- zero vector 零向量
- unit vector 单位向量
- scalar 标量
- casting 组件
- assignment operators 赋值运算符
- unary operators 一元运算符
- binary operators 二元运算符
- cross product 叉积