zoukankan      html  css  js  c++  java
  • 线性代数之齐次坐标

    本文解释为何齐次坐标可用来实现平移

    解释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维对齐次坐标做剪切。

  • 相关阅读:
    服务器组件
    SQLAlchemy
    SessionMiddleware源码分析
    java实现ftp文件上传下载,解决慢,中文乱码,多个文件下载等问题
    linux 实现自动创建ftp用户并创建文件夹
    window server 2008 配置ftp并实现用户隔离
    centos 6.5配置ftp服务器,亲测可用
    learnyounode 题解
    [写出来才有价值系列:node.js]node.js 02-,learnyounode
    Linux多台机器配置ssh免登录
  • 原文地址:https://www.cnblogs.com/byeyear/p/5149696.html
Copyright © 2011-2022 走看看