线性代数之齐次坐标
坐标 线性代数
2023-09-14 09:06:30 时间
本文解释为何齐次坐标可用来实现平移
解释1:标准变换矩阵
齐次坐标的标准变换矩阵可写为[T(e1) T(e2) T(e3)]
T(e1)=[1 0 0]T
T(e2)=[0 1 0]T
T(e3)=[h k 1]T
可以看出,e1、e2在变换后都维持不变;而e3变换为[h k 1]T。
我们知道,矩阵与向量的乘法可看作以向量各元素为权对矩阵各列的线性组合。
用齐次坐标完成的平移变换矩阵就是将z向坐标(1)分别乘以h和k(加权)然后加到x方向和y方向上(线性组合)。
或者说,由于向量加法不是线性变换,所以我们需要额外的一维,利用这额外的一维,将“加法(非线性变换)”变换为“加权的线性组合(线性变换)”。
解释2:从二维到三维
我们已经知道,所有的矩阵变换都是线性变换,所以齐次坐标下的平移也是线性变换。
让我们从一维平移说起。为了实现一维平移,我们需要二维变换矩阵:
我们发现这实际上就是二维水平剪切的变换矩阵。将其效果写成向量乘法形式:
可以看出,二维剪切不改变某个点的y坐标,而将x坐标移动ky距离(x变换为x+ky)。当y=1时,x方向的平移距离就是k。这和二维剪切图形的直观效果是一致的。若将上述内容推广到更高维度,那就是N+1维的剪切在N维产生平移的效果。反过来就是,为了实现N维的平移,我们可以在N+1维对齐次坐标做剪切。
相关文章
- Auto.js中基于坐标的操作
- uni-app APP地图移动时获取地图中心点经纬度坐标
- 经纬度距离计算 python_Python已知两坐标求距离
- ggplot画图:y坐标从0开始,去除x横坐标与柱状图之间的间隙
- javascript获取曲线路径每个像素的坐标详解编程语言
- 使用Call screen弹出窗口时,如何设置窗口屏幕的坐标详解编程语言
- MSSQL中经纬度坐标的排序处理(mssql经纬线排序)
- 通过百度地图获取公交线路的站点坐标的js代码
- js鼠标及对象坐标控制属性详细解析
- JSonmousemove鼠标移动坐标接龙DIV效果实例
- 在jqueryboxy中添加百度地图坐标拾取注意流程
- c#封装百度web服务geocodingapi、百度坐标转换示例
- jquery用offset()方法获得元素的xy坐标