直线

通常三维空间中的直线可以由两点的连线或者两平面的相交线确定,但它的表示却比较麻烦。

三维空间中的直线有4个自由度。一个简单的解释是想象在两个正交平面上各取一个点,从而得到一条直线,这两个点各有两个自由度,因此合起来有4个自由度。

对于4个自由度的齐次表示一般需要5维向量,这样的表示方法将使得直线与平面和点(它们都是4维向量)的运算变得困难,为解决这一问题,数学家们发明了不同的表示方法。

零空间、生成空间表示法

设A、B为空间中的两点,过A、B的直线为L。定义

W=[A B]T

W=[A~B]^T
则:

  1. W的行向量张成的空间构成了直线上的点集
  2. W的零空间构成了以直线L为轴的平面的集合

由线性代数易证,简单解释就是齐次坐标下直线上的点可以表示为其上不重合的两点的线性组合。

同样的,设平面P、Q交于直线L,定义

W∗=[P Q]T

W^*=[P~Q]^T
则:

  1. W的行向量张成的空间构成了以直线L为轴的平面的集合
  2. W的零空间构成了直线上点的集合。

称它为前一种方法的对偶表示法。
由此可以得到两个推论:

  • 矩阵M=[WT X]TM=[W^T~X]^T的零空间为直线与点确定的平面
  • M=[W∗T π]TM=[W^{*T}~\pi]^T的零空间为平面与直线的交点。

plucker矩阵表示

设A、B为L上的两点,则

L=ABT−BAT

L=AB^T-BA^T
L的秩为2,它的零空间是上文的 W∗W^*
可以看到,此种定义方法与前一种不同,对于L上任意两个点,总能得到相同的L。对它进行射影变换H得到的直线为 L′=HLHTL'=HLH^T

同样的可以定义它的对偶表示法
设平面P、Q相交于L,则

L∗=PQT−QPT

L^*=PQ^T-QP^T
对它进行射影变换有 L∗=H−TLH−1L^*=H^{-T}LH^{-1}
L∗L^*与L的系数有如下关系:

l12:l13:l14:l23:l42:l34=l∗34:l∗42:l∗23:l∗14:l∗13:l∗12

l_{12}:l_{13}:l_{14}:l_{23}:l_{42}:l_{34} = l_{34}^*:l^*_{42}:l^*_{23}:l^*_{14}:l_{13}^*:l_{12}^*

可以得到两个推论:

  • 由点X和直线L定义的平面为π=L∗X\pi=L^*X,
  • 由直线L和平面π\pi确定的点为x=Lπx=L\pi

plucker直线坐标

plucker直线坐标即上述反对称矩阵L的6个非零元素,即
L={l12,l13,l14,l23,l42,l34}\mathcal{L}=\{l_{12},l_{13},l_{14},l_{23},l_{42},l_{34}\}
这是一个6维的非齐次坐标,表示了IP5IP^5中的一个点。又因为det L =0,故

l12l34+l13l42+l14l23=0

l_{12}l_{34}+l_{13}l_{42}+l_{14}l_{23}=0
仅当6维向量 L\mathcal{L}满足上式时它才是一条直线。
它可以用来判断两条直线 L、L^\mathcal{L}、\mathcal{\hat{L}}是否共面,定义运算

(L|L^)=∑ijkllijl^kl,i,j,k,l∈1,2,3,4,i≠j≠k≠l

(\mathcal{L}|\mathcal{\hat{L}}) = \sum_{ijkl}l_{ij}\hat{l}_{kl},i,j,k,l \in {1,2,3,4},i\not=j\not=k\not=l
当且仅当 (L|L^)=0(\mathcal{L}|\mathcal{\hat{L}}) =0时,两直线共面。

二次曲面

二次曲面可以表示为

XTQX=0

X^TQX=0
Q为 4×44\times4对称矩阵。它有9个自由度。空间中9点确定一个曲面。当Q为奇异矩阵时,曲面发生退化。
二次曲面与平面 π\pi的交线为二次曲线 C=MTQMC=M^TQM
在射影变换下二次曲线满足 Q′=H−TQH−1Q'=H^{-T}QH^{-1}

MVG读书笔记——三维空间中的射影几何(二)相关推荐

  1. MVG读书笔记——三维空间中的欧氏变换

    三维空间中的射影变换基本是二维空间中变换的推广,在此不多赘述.且三维空间中我们一般只会用到欧氏变换.因此在此主要介绍欧氏变换 欧氏变换 平面上的欧氏变换可以看作三维空间中欧氏变换的特例.平面上的欧氏变 ...

  2. MVG读书笔记——射影变换的校正(二)

    虚圆点(circular points) 上一节讲到仿射变换中无穷远处的直线是固定的.而其上的点是不固定的.这很容易理解,对一条直线沿着它的切线方向平移,直线方程不变,但是上面的点的坐标却发生了变化. ...

  3. 【徐禾 政治经济学概论】 读书笔记 §1.3劳动的二因素:具体劳动和抽象劳动(上.价值质的规定性)

    一.具体劳动 定义1 具体劳动:根据劳动的目的.对象.所用工具.操作方法和劳动成果来区分,生产一种特定品种的产品的劳动. 例:生产木器得用木匠的劳动,生产铁器得用铁匠的劳动,--即便生产的同样是铁器或 ...

  4. MVG读书笔记——射影几何下的二次曲线

    双曲线.椭圆.抛物线等统称为二次曲线(或圆锥曲线),它其实是三维空间中圆锥在截面上的投影,如图 齐次坐标下的二次曲线表示 二次曲线的在欧氏空间的方程为 ax2+bxy+cy2+dx+ey+f=0ax^ ...

  5. 哈佛幸福课相关积极心理学经典英文原版书籍-读书笔记(连载中)(转)

    原文地址:http://www.wisdomsnack.com/1291.html 2000年, 美国心理学家Martin Seligman 和 Mihaly Csikszentmihalyi 发起了 ...

  6. 《流畅的Python第二版》读书笔记——函数中的类型注解

    引言 这是<流畅的Python第二版>抢先版的读书笔记.Python版本暂时用的是python3.10.为了使开发更简单.快捷,本文使用了JupyterLab. 本章关注于Python在函 ...

  7. MVG读书笔记——单应矩阵估计这件小事(二)

    还是以两幅图像进行单应矩阵求解为例,上面讲到使用DLT算法一对对应点之间可以构成一个方程组Ah=0Ah=0,其中A为一个2×92 \times 9的矩阵.由此只需要4个点就可以求解出H矩阵.但是在实际 ...

  8. MVG学习笔记(1) --无处不在的射影几何

    文章目录 前言 无处不在的射影几何 坐标 齐次性 仿射和欧几里得几何 仿射几何 欧几里得几何 3D欧几里得几何 前言   关于计算机视觉圣经的学习笔记.本次此系列的博文除了本次博文,基本不会包含前言了 ...

  9. [读书笔记]C#中get与set的用法

    get是读取属性时进行的操作,set是设置属性时进行的操作.定义一个属性如果只有get,这个属性就是只读的.同样,只有set,属性就是只写的,当然只写的属性是没有任务意义的. 假设类是一个银行,既能存 ...

最新文章

  1. C语言函数集(十六)
  2. 【Android Gradle 插件】Module 目录下 build.gradle 配置文件 ( plugins 闭包代码块中引入插件 | PluginAware#apply 方法引入插件 )
  3. 建行参考码大全ybla_52度五粮液价格表大全 不同系列价钱盘点
  4. jquery 判断数据是否重复
  5. Linux 守护进程的启动方法
  6. 开发自己的PHP MVC框架(一)
  7. 关于E: Sub-process /usr/bin/dpkg returned an error code (1)错误解决
  8. Matlab二进制文件的读写
  9. UIScrollView 手势缩放
  10. Err CLSU-00104: additional error information: need ha priv
  11. wpf绑定 dictionary 给定关键字不再字典中_为什么要在 JavaScript 中学习函数式编程?...
  12. 计算机管理内默认共享,Win10共享默认在哪里关闭 清除默认共享哪种方法比较彻底...
  13. 制造上云 佛山南海携手阿里云建创新中心
  14. Rasa NLU 示例
  15. 转载_纯Java代码批量去除图片文字水印
  16. access下如何配置两个vlan_如何一个端口设置多个VLAN
  17. RabbitMQ在特来电的深度应用
  18. 人体全息图——不看你会后悔一辈子!
  19. Mangopi MQ-R:T113-s3编译Tina Linux系统
  20. 遗传算法(GA)附Matlab代码(copy能用)寻优算法

热门文章

  1. 【网站翻译】【个人博客】【小牛翻译】嚯?我的博客网站没有翻译功能也能翻译了?一段代码给自己的博客网站添加多一份翻译~
  2. 【IT项目管理】第七章课后习题
  3. python学习之一(变量的基本使用)
  4. 再接再厉mms 资源 转
  5. 安卓framework,面试大厂应该注意哪些问题?隔壁都馋哭了
  6. python 杀死线程_如何杀死正在运行的线程
  7. Python 实现 游戏EVE 自动化挖矿 注:模拟点击原理 附演示视频
  8. 惠普电脑window10系统怎么进入bios
  9. python支持复数类型、以下说法错误的是_Python支持复数类型,以下哪个说法是错误的?...
  10. 任务4、等差数列求和,判断闰年,判断素数