坐标系统
在3D渲染中,使用得最广泛的坐标系统是笛卡尔坐标系(Cartesian coordinates)
。 而笛卡尔坐标系又可以分成左手坐标系
和右手坐标系
。 当左手大拇指或者右手大拇指指向坐标系z轴正方向,且其余四指指尖的环绕方向是坐标系x轴绕向y轴的方向(逆时针方向),满足这以规则的笛卡尔坐标系即称为左手坐标系或右手坐标系。 其中OpenGL使用的是右手坐标系,而DirectX使用的是左手坐标系。
矢量乘法
矢量的乘法有两种最常见的种类:点积(Dot Product)
和叉积(Cross Product)
。 点积
的名称应该是来源于这个运算符号:$ a \cdot b $。中间的圆点符号是不可以省略的,点积的公式如下:
$$ a \cdot b = (a_x, a_y, a_z) \cdot (b_x, b_y, b_z) = a_xb_x + a_yb_y + a_zb_z $$
矢量的点积满足交换律,即 $a \cdot b = b \cdot a$。点积的一个几何意义就是投影(Projection)
。点积的另一个公式如下:
$$ a \cdot b = |a||b|cos\theta $$
另一个重要的矢量运算就是叉积
。与点积不同,叉积的结果仍然是一个矢量,而非标量。叉积的符号: $ a \times b$,同样这个叉号也是不可以省略的。叉积的公式如下:
$$ a \times b = (a_x, a_y, a_z) \times (b_x, b_y, b_z) = (a_yb_z - a_zb_y, a_zb_x - a_xb_z, a_xb_y - a_yb_x ) $$
叉乘虽然不满足交换律但是满足反交换律
,即:$a \times b = -(b \times a)$,而叉积满足公式:
$$ | a \times b |= |a||b|sin\theta $$
上述公式实际上和计算平行四边形面积公式是相同的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。