zoukankan      html  css  js  c++  java
  • 齐次表示

      点表示空间中的一个位置,而向量仅表示一个方向,没有具体的位置。使用3x3的矩阵(或者二维空间中2x2矩阵)可以对坐标进行线性变换,比如旋转、缩放,以及错切等。然而,使用这种矩阵并不能进行平移变换。对向量来说,这种不足并不重要,因为向量的平移没有任何意义。只有点才有平移的意义和价值。

      对于向量和点的变换来说,齐次表示非常有用,可以只对点进行平移操作。它可以把一个3x3的矩阵扩展为4x4的矩阵,三维的点和向量可以增加一维元素,一个齐次坐标可以表示为:p = (px, py, pz, pw)。随后可以知道,对于点,p= 1,对于向量,pw = 0。对于投影来说,可以用其他几个值来代替pw。如果pw ≠ 0且pw ≠ 1.那么可以通过齐次化处理获得实际的点,其中所有的分量都除以pw,这意味着可以得到点(px/pw, py/pw, pz/pw, 1)。

      式(A.43)所示为一个3x3的矩阵M,可以将其扩展为一个齐次4x4的矩阵形式(一种最简单的扩展形式)。

      

      旋转矩阵、缩放矩阵,以及错切矩阵可以替换(A.43)中的矩阵M,而且会影响到向量和点。然而,平移变换使用了增强矩阵的额外元素来实现平移目的。式(A.44)所示为一种典型的平移矩阵T,可以通过向量t实现对点的平移。

      

      很容易验证,Tv变换对向量v = (vx, vy, vz, 0)并没有什么影响,因为v的最后一个元素为0。如果将点p = (px, py, pz, 1)变换为Tp,那么变换之后的结果就是(px + tx, py + ty, pz + tz, 1),也就是将p平移了一个t

  • 相关阅读:
    2020 CCPC Wannafly Winter Camp Day2 K题 破忒头的匿名信(AC自动机+dp)
    CF1446C Xor Tree(01Trie)
    day04---系统重要文件
    day03--vi和vim快捷方式及操作系统目录介绍
    day02---虚拟机上网模式
    day01---操作系统安装环境准备
    django中一些快捷函数
    django中的一些装饰器用法
    auth模块的一些方法
    celery中异步延迟执行任务apply_anysc的用法
  • 原文地址:https://www.cnblogs.com/dongerlei/p/5233784.html
Copyright © 2011-2022 走看看