美文网首页OpenGL初探
延展1—齐次坐标

延展1—齐次坐标

作者: L_Ares | 来源:发表于2020-04-21 16:09 被阅读0次

本文为L_Ares个人写作,包括图片皆为个人亲自操作,以任何形式转载请表明原文出处。

本文学习了网上“关于齐次坐标的理解”等文章,为本人自己学习所用,没有任何商业用途。也仅可做自己学习使用。

本文将以透视投影作为切入点进行笔记,因为欧氏空间虽然很适合描述2D和3D几何,但是并不适用于透视空间,而透视空间相比较2D和3D才更适合人类的观察角度。并且,欧氏空间其实也是透视空间的子集。

那我们为什么要引入齐次坐标这样的一个概念呢?

因为在计算机图形学当中,我们需要进行仿射几何变换。直接的说,我们需要矩阵来描述平移、缩放、旋转等变化。

在完成图形投影变换的时候,w其实就是第四维的空间,也有人称作比例因子,也可以叫做“投影空间”,点在四维坐标中的坐标也就是齐次坐标。

本篇延展主要针对齐次坐标进行理解并记录笔记。如有不对,敬请指出,谢谢。

首先,要理解的是概念性的问题,从齐次开始。

一、齐次的概念

如果函数f(x)满足f(ax) = a^k{f(x)} ,其中a为非零实数,k为整数,x是输入变量。我们就称f(x)k次齐次函数。

用语言表述就是:一般地,如果一个函数的自变量乘以一个系数,函数结果等于函数乘以这个系数的k次方,k为整数,那么我们就成这个函数为k次齐次函数。

人话说就是:当函数的自变量扩大了a倍,a非零,那么函数也将扩大a的k次方倍。

所以齐次描述的是函数的一个倍数的性质。

二、齐次坐标

根据百度百科的查询(Wiki一样),齐次坐标的核心理解是将原来n维的向量用n+1维向量表示。后面我只写我理解的,也包含百科里面的原文,请自行斟酌。

  1. 要认知实投影平面。实投影平面可以看作在欧式平面外存在一个额外点,这个点可以是想象存在的,称之为无穷远点。
  2. 其次,无穷远点不是唯一的,无穷远点也存在点连成线,这条线被称作无穷远线。
  3. 无穷远点是对应着方向的,无穷远点对应的方向是由一条线的斜率给出的。这条线可以非正式的定义为一个点以原点为起点,向该方向移动,移动的终点就是无穷远点,这个点移动的方向就是无穷远点的方向。

包括在欧氏空间中的两条平行线,因为有了无穷远点的存在,也可根据上述介绍,看成是两条线沿着共同的方向,在无穷远点处相交。就像平常看远方高速公路,远到极致像相交。

无穷远点.png

齐次坐标的定义

给定欧式平面上的一点A(x,y),对任意非零实数Z,三元组(xZ,yZ,Z)即是A点的齐次坐标。
三元组(0,0,0)不表示任何点,三元组的原点是(0,0,1);

齐次坐标的特点

1、投影平面上的任何点,都可以表示成一个三元组(X,Y,Z),这个三元组的坐标称为该点的齐次坐标或者投影坐标,条件是X,Y,Z不全为0。

2、以齐次坐标表示的点,在该坐标内,其坐标数值全部乘以任意一个非零实数,仍会表示表示该点。

3、根据第2条的特点,如果有两个齐次坐标表示的是同一个点,那么其中的任一一个齐次坐标一定可以通过全部乘以一个非零实数得到另一个齐次坐标。

4、三元组(X,Y,Z)中,当Z不为0的时候,该点在欧式空间中的点坐标是(X/Z,Y/Z)

5、当Z为0的时候,则表示一个无穷远点。

注:个人的一点想法

这里很多的东西都是我按照Wiki和某度学习的,所以写的东西也仅仅是我理解了以后的东西,和查到的其他文章意思都差不多。
另外,有一个很经典的理解我没有写上来,因为我也没有完全的搞懂细节,想看的朋友可以自行查看。齐次坐标经典理解
这里面有对齐次坐标学习理解的很重要的两点之一:向量和点的区分。在我理解所有细节后,我会再写上来。

三、我对齐次坐标的经典理解的理解

这是我目前的理解。

(1)对于向量B,根据向量坐标的概念,存在:
对于基oabc,存在关于基oabc的坐标(v_1,v_2,v_3),使得向量B满足:
B = v_1{a}+v_2{b}+v_3{c}\tag{3.1}

(2)根据空间坐标系的基的概念,空间中的每一个点的位置都可以被基线性的表示出来,所以对于点P,一定存在一组坐标(p_1,p_2,p_3),满足:
P-o = p_1{a} + p_2{b} + p_3{c}\tag{3.2}

从(2)的情况中我们可以看出,坐标系中的点的位置可以看成基的原点o的位移。

那么根据(3.2)这个等式,我们可以得到:

P = p_1{a} + p_2{b} + p_3{c} + o\tag{3.3}

那么如果将(3.1)(3.3)用矩阵的方式表示出来,用来分别表达向量和点的信息的话,则是:

向量:
B = (v_1,v_2,v_3,0) \times (a,b,c,o)\tag{3.5}

点:
P = (p_1,p_2,p_3,1) \times (a,b,c,o)\tag{3.6}

在等式(3.5)和(3.6)中,我们可以看到,向量的第四个代数分量是0,点的第四个代数分量是1,像这种用第4个分量来表示3D几何概念的方式就是齐次坐标的一种表示。

像这样,对于坐标(x,y,z),如果它的齐次坐标是(x,y,z,0),那么可以推断这是向量。如果是(x,y,z,1),那么它是点。

所以,一般的,普通坐标转齐次坐标满足:

向量的普通坐标是(x,y,z),齐次坐标是(x,y,z,0);

点的普通坐标是(x,y,z),齐次坐标是(x,y,z,1)

齐次坐标转普通坐标满足:

如果知道齐次坐标是(x,y,z,0),普通坐标是(x,y,z),一般的,它是一个向量;

如果知道齐次坐标是(x,y,z,1),普通坐标是(x,y,z),一般的,它是一个点。

以上的方式是通过齐次坐标区分了向量和点,那么对于仿射变换中最常见的三种:平移T,旋转R,缩放S,它们对于向量和点都有什么样的需求或者说影响呢?

首先从平移T来说,因为平移只对点有实际的意义,因为点是具有位置概念的,而普通的向量更注重的是方向和大小的概念。而旋转和缩放则是对点和向量都有着意义。

四、最后

这是我看了其他博主的文章后,再自己理解整理出来的内容,一定有些东西是和别人的一样的,因为那是一个概念性质的东西,或者是非常经典非常好的理解。对于齐次坐标,其实我觉得它的存在意义就是将不好解决的低维概念转换成更立体的高维概念,因为高维可能更接近现实和客观,更容易找到符合的规律,从而解决问题。
如果文章中有错误的地方,敬请各位不吝赐教,谢谢。

相关文章

  • 延展1—齐次坐标

    本文为L_Ares个人写作,包括图片皆为个人亲自操作,以任何形式转载请表明原文出处。 本文学习了网上“关于齐次坐标...

  • 栅格化时为什么要引入齐次坐标

    参考:为什么要引入齐次坐标,齐次坐标的意义(一)为什么要引入齐次坐标,齐次坐标的意义(二)用矩阵表述变换与齐次坐标...

  • 坐标系变换数学基础

    什么是齐次坐标 用[n+1]维数组表示n维坐标的方法叫齐次坐标法(Homogenous coordinate)。 ...

  • 3D数学

    1, 向量 2, 矩阵 3, 欧拉角 4, 四元数 5, 坐标系变换 6, 齐次坐标与透视变换的推导 齐次坐标 向...

  • 齐次坐标

    齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指一个用于投影几何里的坐标系统 齐次坐标是计算机图形...

  • 齐次坐标

    H.C.(Homogeneous Coordinates) are a system of coordiantes...

  • 齐次坐标

    Homogeneous CoordinatesProblem: Two parallel lines can in...

  • 齐次坐标

    《计算机视觉教程》笔记编著:章毓晋(清华大学电子工程系)出版社:人民邮电出版社出版时间:2017.3 (其实,不管...

  • 计算机视觉基础-几何变换

    齐次坐标 齐次坐标就是用N+1维来代表N维坐标 许多图形应用涉及到几何变换,主要包括平移、旋转、缩放。以矩阵表达式...

  • 关于齐次坐标

    以下对齐次坐标的解释,主要参考在其他博客看到的,非原创,个人觉得解释的浅显易懂,有助于初学者对齐次坐标的理解。 对...

网友评论

    本文标题:延展1—齐次坐标

    本文链接:https://www.haomeiwen.com/subject/haxgtctx.html