加入了智能成像实验室,但是我对计算机图形学了解还太浅,因此需要学习一些图形学的基础知识。本篇博客先介绍一些很简单的数学基础。
右手坐标系
首先是XYZ坐标轴,一般我们使用的坐标轴是符合右手定则的。这也是大多数数学教材使用的坐标轴的定义。右手定则即用右手从X轴方向握向Y轴方向,这时候伸出大拇指,大拇指的朝向就是Z轴的方向。实际上这是一个很基础的知识,但是我过去没多久才发现自己一直不知道这个东西。直到计算第二型曲面积分时候发现结果总是相反才发现。
向量点乘和叉乘
点乘(Dot Product)
实际上在笛卡尔坐标系中求解两个向量的点乘是非常容易的:
则:
因此点乘可以用来求两个向量的夹角。
另一个点乘的应用是求某个向量到另一个向量上的投影,如在上的投影长度实际上是,而.
同样的想要求投影之后的向量也很简单,只要用长度乘上方向的单位向量即可:
.
叉乘(Cross Product)
上面为叉乘的长度,除此之外,叉乘得到的是一个向量,它的方向符合右手定则,也与原来两个向量垂直。
从右手定则可以很容易推导出:.
同时也有以下的一些等式:
在笛卡尔坐标系下,叉乘的计算也不算困难:
而且也可以写成下面的形式:
上式中被成为向量的对偶矩阵。
坐标系(Coordinate Frames)
坐标系并不是只有XYZ,XYZ只是标识而已。任何满足下面条件的三个向量,都可以作为坐标系:
任何一个向量可以写成各个坐标系的投影之和:
如何使用两个非零非同方向的向量创造一个坐标系(在三维重建中可能会经常碰到)?
从上面我们可以看到叉乘对于创建一个坐标系的作用。
矩阵(Matrix)
,因为$
AB B^{-1} A^{-1} = I$.
通过矩阵可以实现空间点的各种转换。