目录
1 几何基元
1.1 二维平面
2D点
2D点即二维平面的像素坐标,其非齐次表达式可表示为一个列向量:或者
齐次表达式:,在尺度上不同的矢量看成是相同的。
也可以将其变换成非齐次矢量形式:,其中,
称为增广矢量。
我们可以把当作该点到原点距离的倒数,
=0,可以视作该点距原点无穷远,这样就实现了齐次与非齐次表达式之间的转换。而后续计算往往需要用到的是增广矢量,所以我们只需要简单地把增广矢量当作是二维坐标点在原有横纵两个坐标的基础上添加一个常数为1的参数。
2D直线
齐次表达式:
对应的直线方程:
以及规范化直线方程
其中向量n为垂直于直线的法向量,d为直线与原点距离。
这里还有两个计算公式,
分别对应了已知两直线求交点和已知两点求直线的情形。
1.2 三维空间
3D点
非齐次表达式:
齐次表达式:
增广矢量:
基本上可以完全对照二维平面的表达式,只是在二维基础上多了一维参数。
3D平面
齐次表达式:
对应的平面方程:
以及规范化平面方程:
其中向量n为垂直于平面的法向量,d为其到原点的距离。
我们还可以将向量n表示为两个角度的函数:
3D直线
直线的表达就没有上面的式子那么优美了,一种表达方式是通过两个点(p,q)表示:r = (1-λ)p + λq. (当我们限定0<=λ<=1时,得到的便是p,q间的一条线段
当然我也可以直接写成r = μp + λq的形式。
2 变换
2.1 二维平面
平移
变换前后的矢量间关系:
x和y分别是横纵坐标平移的单位距离。
旋转
变换前后的矢量间关系:
θ为逆时针旋转角度。
放缩
变换前后的矢量间关系:
x和y分别是横纵坐标放缩的比例。
仿射
参考:https://www.cnblogs.com/shine-lee/p/10950963.html
投影
也可以称为透视变换或者同态变换,是作用在齐次坐标下的:
其中H是任意一个三阶方阵。
放射变换和透视变换的区别:https://blog.csdn.net/flyyufenfei/article/details/80208361
2.2 三维空间
欧拉角
该旋转系有三个参数,分别是方向向量与三个坐标轴所成方向角。这种参数选择在参数空间中并不能光滑地移动,所以很少使用。
轴/角(指数扭曲)
该旋转系有四个参数,分别是旋转轴的三个方向向量(单位向量)和旋转角度,可以得到如下变换矩阵公式: