我对齐次坐标在3D图形中应用的部分理解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我对齐次坐标在3D图形中应⽤的部分理解
齐次坐标是我之前⼀直不太理解的,之后有听到这句话
“齐次坐标表⽰是计算机图形学的重要⼿段之⼀,它既能够⽤来明确区分向量和点,同时也更易⽤于进⾏仿射(线性)⼏何变换。
”—— F.S. Hill, JR。
如何来理解这句话呢?
这⾥不谈严格的其次坐标和齐次矩阵的严格数学定义(如有所需请找其他的相关资料),只谈我的理解之下的它的应⽤
1.基于3D空间的"平移矩阵"
普通的3D向量和点只需要 (x,y,z) 3个分量
但是我们没办法区分他是⼀个点,还是⼀个向量(在书⾯记法上可以⽤圆括号横写表⽰点,⽤⽅括号竖写表⽰向量),并且只能应⽤于线性变换(3X3矩阵)
如果需要进⾏平移操作(仿射变换),则需要4X4矩阵,这就需要让我们的向量、点从3个分量扩展到4个分量 (x,y,z,w)
此时矩阵为
可以将矩阵的第四个基向量l的其中三个分量△x,△y,△z ⽤作平移,这样我们就可以直接基于矩阵的运算法则,将平移操作的能⼒加⼊到对我们关⼼的3D空间中了。
2.区分点和向量
基于上⾯的4X4矩阵,若我们传⼊的向量(x,y,z,w)中的w分量等于0,则表⽰这是⼀个向量,有”关闭平移功能”的含义。
若w分量不为0 ,表⽰是⼀个点,有“打开平移功能”的含义。
另外,在数学上的点和向量的⼀些定义:
对于⼀个向量v,以及基oabc,可以找到⼀组坐标(v1,v2,v3),使得v = v1 a + v2 b + v3 c (1)在数学上研究向量时,默认是认为它的箭头尾部始终是起始于原点
对于⼀个点p,则可以找到⼀组坐标(p1,p2,p3),使得 p – o = p1 a + p2 b + p3 c (2)有的书中把这样的向量叫做位置向量
对于(2)中的点p,也可以转化成,在表达这个向量的同时⽤等价的⽅式表达出了点p:p = o + p1 a + p2 b + p3 c (3)
所以,如果我给出 (1,2,3) 你不知道它是⼀个点还是向量,但如果我给出
(1,2,3,0) 你知道它是⼀个向量,因为它关闭了平移功能,满⾜(1)的定义,关闭了仿射变换,只可以⽤线性变换
(1,2,3,1) 你知道它是⼀个点,因为它打开了平移功能,满⾜(3)的定义,打开了仿射变换
由于⽤了4个分量表达3D中的概念,且遵循线性代数中矩阵的运算法则,⽀持了平移及已延伸功能,如绕⾮原点旋转等,所以⾮常⽅便的完成了3D中更多的,常见的,只⽤3D向量表⽰的话⽐较⿇烦的变换功能。
3.和3D透视投影的关系
另外齐次坐标在3D透视摄像机投影的计算中,往往⽤在最后⼀步:齐次化
代数上通过给出⼀个4分量的点,表⽰为齐次化为的形式,这⾥主要的使⽤⽬的是:齐次化的操作,⽀持除法,⽽除法操作是透视投影中需要的
让点,根据近⼤远⼩,相似三⾓形原理,齐次化为
总结
所以⽤4个分量表⽰的齐次坐标,来表达3D中的概念,扩展了⼀些功能
⽀持区分点还是向量的能⼒,⽀持仿射变换(平移)的能⼒,⽀持齐次化(除法)的能⼒。