精华内容
下载资源
问答
  • 齐次坐标系
    千次阅读
    2019-05-13 23:27:24

    简介:一直对齐次坐标这个概念的理解不够彻底,只见大部分的书中说道“齐次坐标在仿射变换中非常的方便”,然后就没有了后文,今天在一个叫做“三百年 重生”的博客上看到一篇关于透视投影变换的探讨的文章,其中有对齐次坐标有非常精辟的说明,特别是针对这样一句话进行了有力的证明:“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”—— F.S. Hill, JR。其次坐标系能够更好的区分向量与点

    一.向量与点的坐标表达

    注意:1.点跟向量是不同的概念,点是一个位置概念有平移与缩放;向量只有大小和方向的概念。
    2.两个点才能够表达一个向量。
    对于一个向量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),
    从上面对向量和点的表达,我们可以看出为了在坐标系中表示一个点(如p),我们把点的位置看作是对这个基的原点o所进行的一个位移,即一个向量——p – o(有的书中把这样的向量叫做位置向量——起始于坐标原点的特殊向量),我们在表达这个向量的同时用等价的方式表达出了点p:p = o + p1 a + p2 b + p3 c (3)
    (1)(3)是坐标系下表达一个向量和点的不同表达方式。这里可以看出,虽然都是用代数分量的形式表达向量和点,但表达一个点比一个向量需要额外的信息。如果我写出一个代数分量表达(1, 4, 7),谁知道它是个向量还是个点!
    我们现在把(1)(3)写成矩阵的形式:v = (v1 v2 v3 0) X (a b c o)。p = (p1 p2 p3 1) X (a b c o),这里(a,b,c,o)是坐标基矩阵,右边的列向量分别是向量v和点p在基下的坐标。这样,向量和点在同一个基下就有了不同的表达:3D向量的第4个代数分量是0,而3D点的第4个代数分量是1。像这种这种用4个代数分量表示3D几何概念的方式是一种齐次坐标表示。

    二.用齐次坐标表达向量与点

    这样,上面的(1, 4, 7)如果写成(1,4,7,0),它就是个向量;如果是(1,4,7,1),它就是个点。下面是如何在普通坐标(Ordinary Coordinate)和齐次坐标(Homogeneous Coordinate)之间进行转换:
    (1)从普通坐标转换成齐次坐标时
    如果(x,y,z)是个点,则变为(x,y,z,1);
    如果(x,y,z)是个向量,则变为(x,y,z,0)
    (2)从齐次坐标转换成普通坐标时
    如果是(x,y,z,1),则知道它是个点,变成(x,y,z);
    如果是(x,y,z,0),则知道它是个向量,仍然变成(x,y,z)
    以上是通过齐次坐标来区分向量和点的方式。从中可以思考得知,对于平移T、旋转R、缩放S这3个最常见的仿射变换,平移变换只对于点才有意义,因为普通向量没有位置概念,只有大小和方向.
    而旋转和缩放对于向量和点都有意义,你可以用类似上面齐次表示来检测。从中可以看出,齐次坐标用于仿射变换非常方便。
    此外,对于一个普通坐标的点P=(Px, Py, Pz),有对应的一族齐次坐标(wPx, wPy, wPz,w),其中w不等于零。比如,P(1, 4, 7)的齐次坐标有(1, 4, 7, 1)、(2, 8, 14, 2)、(-0.1, -0.4, -0.7, -0.1)等等。因此,如果把一个点从普通坐标变成齐次坐标,给x,y,z乘上同一个非零数w,然后增加第4个分量w;如果把一个齐次坐标转换成普通坐标,把前三个坐标同时除以第4个坐标,然后去掉第4个分量。

    三.使用齐次坐标系的优点

    由于齐次坐标使用了4个分量来表达3D概念,使得平移变换可以使用矩阵进行,从而如F.S. Hill, JR所说,仿射(线性)变换的进行更加方便。由于图形硬件已经普遍地支持齐次坐标与矩阵乘法,因此更加促进了齐次坐标使用,使得它似乎成为图形学中的一个标准。
    以上很好的阐释了齐次坐标的作用及运用齐次坐标的好处。其实在图形学的理论中,很多已经被封装的好的API也是很有研究的,要想成为一名专业的计算机图形学的学习者,除了知其然必须还得知其所以然。这样在遇到问题的时候才能迅速定位问题的根源,从而解决问题。

    更多相关内容
  • 使用齐次坐标的众多目的之一是捕捉无穷大的概念。在欧几里德坐标系中,无限是不存在的。 数学家发现,如果使用...如果不使用齐次坐标系,就很难在计算机图形学和计算 机辅助设计中设计某些类别的非常有用的曲线和曲面。
  • 关于齐次坐标系

    千次阅读 2018-06-01 09:42:22
    转载自https://oncemore.wang/blog/homogeneous/齐次坐标系入门级思考Last Updated At: 2017-03-29齐次坐标系(Homogeneous Coordinates) 是计算机视觉和图形学中的一个重要的数学工具。1. 游戏名目1.1. 齐次坐标...

    转载自https://oncemore.wang/blog/homogeneous/

    齐次坐标系入门级思考

    Last Updated At: 2017-03-29

    齐次坐标系(Homogeneous Coordinates) 是计算机视觉和图形学中的一个重要的数学工具。

    1. 游戏名目

    1.1. 齐次坐标引入

    在欧式空间里,两条共面的平行线无法相交,然而在 投影空间(Projective Space) 内却不是这样,一个感性的理解是,如下图中的两条铁轨的间距随着视线变远而减小,直至在地平线处(无限远点)相交。

    railway

    欧式空间采用 (x,y,z)(x,y,z) 来表示一个三维点,但是无穷远点 (,,)(∞,∞,∞) 在欧式空间里是没有意义的,在投影空间中进行图形和几何运算并不是一个简单的问题,为了解决这个问题,数学家 August Ferdinand Möbius1 提出了齐次坐标系,采用 N+1N+1 个量来表示 NN 维坐标。例如,在二维齐次坐标系中,我们引入一个量 ww,将一个二维点 (x,y)(x,y) 表示为 (X,Y,w)(X,Y,w) 的形式,其转换关系是

    x=Xwy=Ywx=Xwy=Yw

    例如,在欧式坐标中的一个二维点 (1,2)(1,2) 可以在齐次坐标中表示为 (1,2,1)(1,2,1),如果点逐渐移动向无穷远处,其欧式坐标变为 (,)(∞,∞),而齐次坐标变为 (1,2,0)(1,2,0),注意到在齐次坐标下不需要  就可以表示无限远处的点。

    1.2. “齐次”之名?

    如果我们要将欧式坐标的一个二维点 (1,2)(1,2) 转换为齐次坐标,根据规则,我们可以选择刚才用到的 (1,2,1)(1,2,1),也可以选择 (2,4,2)(2,4,2),还可以选择 (4,8,4),(8,16,8)...(4,8,4),(8,16,8)...,即 (k,2k,k),kR(k,2k,k),k∈R 都是“合法”的齐次坐标表示,这些点都映射到欧式空间中的一点,即这些点具有 尺度不变性(Scale Invariant),是“齐性的”(同族的),所以称之为齐次坐标。

    同样的,线性系统的齐次性是指在输入量倍乘的情况下,输出同时倍乘同一因子。以及齐次函数的定义等,都和倍乘某一个常数因子有关。

    1.3. 平行线相交:不太严格的证明

    考虑两条平行线:

    {Ax+By+C=0Ax+By+D=0{Ax+By+C=0Ax+By+D=0

    在欧式空间中,C=DC=D 时两条线重合,否则不相交。尝试用 xw,ywxw,yw 替换 x,yx,y(如前面提到的,用 N+1N+1 个量表示 NN 维坐标,这里增加了一个量 ww),可以得到:

    {Ax+By+Cw=0Ax+By+Dw=0{Ax+By+Cw=0Ax+By+Dw=0

    可以得到解 (x,y,0)(x,y,0),即两条平行线在 (x,y,0)(x,y,0) 处相遇,称之为无穷点(注意这里不要用欧式空间的思维去想象这个点在哪里)。

    1.4.重要性

    《计算机图形学(OpenGL版)》的作者F.S. Hill Jr. 写到:

    “齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”

    于是我们知道,其重要性,主要有二:其一,是区分向量和点;其二,是易于进行 仿射变化(Affine Transformation),但是这两点内部的原因又是什么呢?吹牛逼要吹到家,总不能说是大牛说的就是对的吧,要理解这两点,需要进行更细致一些的了解,请往下看。

    2. 深入理解

    首先,我们需要对齐次坐标系的形式化表达更明了,为了简化说明,主要以 2 维点做之后的说明。

    2.1. 平面点

    欧式坐标表示:

    x=(x,y)R2x=(x,y)∈R2

    齐次坐标表示:

    x~=(x^,y^,w)P2x~=(x^,y^,w)∈P2

    w=0w=0 时称为 无穷点(points at infinity),其中 P2=R3(0,0,0)P2=R3−(0,0,0) 为 2D投影空间齐次矢量 x~x~ 可转换为欧式表示:

    x~=(x^,y^,w)=w(x,y,1)=wx¯x~=(x^,y^,w)=w(x,y,1)=wx¯

    x¯ 称为 增广矢量(augmented vector)

    2.2. 平面线

    齐次表示:

    l~=(a,b,c)l~=(a,b,c)

    对应欧式空间直线方程:

    x¯l~=ax+by+c=0x¯⋅l~=ax+by+c=0

    例外是在 l~=(0,0,1)l~=(0,0,1) 时为 无穷线,包含了所有的2维无穷点。

    可将 l~l~ 标准化为 l=(n^x,n^y,d)=(n^,d),n^=1l=(n^x,n^y,d)=(n^,d),∥n^∥=1n^n^ 称为 法向量,与直线 l~l~ 垂直,dd 为原点到直线的距离,下图给出了比较形象的解释:

    railway

    采用齐次坐标系时,可求得两条直线的交点的齐次表达:

    x~=l~1×l~2x~=l~1×l~2

    ×× 表示叉积。同时,两个点确定的直线方程的齐次表达为:

    l~=x~1×x~2l~=x~1×x~2

    以上结论的严格的证明是很容易的,最粗暴简单的思路就是在欧式空间内计算出结果后转化为齐次表达,并与采用齐次表达计算结果进行对比,这里略过。

    2.3. 更易用于仿射变换?

    对于一个 2 维点 p=(x,y)p=(x,y),仿射变换(TT)是线性变换(ApAp)和平移变换(+t+t)的叠加:

    T(p)=Ap+tT(p)=Ap+t

    线性变换在欧式空间中可以表示为矩阵乘积形式,如旋转变换和缩放变换:

    [x`y`]=[cos(θ)sin(θ)sin(θ)cos(θ)][xy][x`y`]=[cos(θ)−sin(θ)sin(θ)cos(θ)][xy]
    [x`y`]=[Sx00Sy][xy][x`y`]=[Sx00Sy][xy]

    而平移变换

    [x`y`]=[xy]+[txty][x`y`]=[xy]+[txty]

    却不能用矩阵相乘的形式表达。现在引入齐次坐标系表达 p~=(x,y,1)p~=(x,y,1),(尺度不变性,实际上在高一维的空间映射到 w=1w=1 平面, 这样计算后结果直接可导出到欧式空间)。可以将旋转变换和尺度变换表示为:

    x`y`1=cos(θ)sin(θ)0sin(θ)cos(θ)0001xy1[x`y`1]=[cos(θ)−sin(θ)0sin(θ)cos(θ)0001][xy1]
    x`y`1=Sx000Sy0001xy1[x`y`1]=[Sx000Sy0001][xy1]

    平移变换表示为:

    x`y`1=100010txty1xy1[x`y`1]=[10tx01ty001][xy1]

    然后我们可以导出仿射变换的矩阵形式,

    T=[AO1×2t1]xy1T=[AtO1×21][xy1]

    其中 O1×2=[0  0]O1×2=[0  0],仿射变换保留了点的共线/面性质及比例(可以参考一些图形学资料),这在图形处理中非常重要,比如对于平面上的一个几何形状进行变换,只需要对其顶点进行变换就可实现(在 2 维线上的点变换后一定与变换后的端点共线)。而齐次坐标系的引入使仿射变换能以紧凑统一的矩阵形式表达和计算,这体现了其对仿射变换的重要性。

    2.4. 能够区分向量和点?

    当我们在坐标系 xOyxOy 中用 (a,b)(a,b) 定义一个向量 v⃗ v→ 时,表示 v⃗ =ax⃗ +by⃗ v→=ax→+by→,当我们在同样的坐标系中用 (a,b)(a,b) 表示一个点 pp 时,表示 po=ax⃗ +by⃗ p−o=ax→+by→,假若写下 (2,1)(2,1),如无附加说明,不能区别出它是向量还是点。将点的表示重写为:

    p=[a  b  1]x⃗ y⃗ op=[a  b  1][x→y→o]

    将向量的表示写为:

    p=[a  b  0]x⃗ y⃗ op=[a  b  0][x→y→o]

    这样能够清晰地区分向量和点,用 3 个量表示 2 维点,这即是齐次坐标的思想。

    3. 下一步

    文章为了便于思考,讨论的都是简单的情形,还有很多问题都没有严格的证明,比如,3 维点表达是否还适用?面表达,线表达呢?还有仿射变换为什么保留了共线/面信息?更深入的了解建议找一本计算机图形学的资料,能够了解到更多关于投影空间,2D变换,3D变换,3D到2D变换的形式化表示,以及更严格的证明和表述。

    参考资料:《Computer Vision: Algorithms and Applications》- Richard Szeliski - Chapter 2. Image Formation

    1. 中文音译名莫比乌斯,德国数学家,Wikipedia 

    展开全文
  • 齐次坐标系作用

    2020-01-07 15:53:52
    作者:格东西 ...来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。...译文地址(关于齐次坐标的理解(经典) - CSDN博客): 英文地址:http://www.songho.ca/math/homogeneous/...

    作者:格东西
    链接:https://www.zhihu.com/question/59595799/answer/301242100
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     

    引用别人翻译好的一篇文章:

    译文地址(关于齐次坐标的理解(经典) - CSDN博客):

    英文地址:http://www.songho.ca/math/homogeneous/homogeneous.html

    问题:两条平行线可以相交于一点

    在欧氏几何空间,同一平面的两条平行线不能相交,这是我们都熟悉的一种场景。

    然而,在透视空间里面,两条平行线可以相交,例如:火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点。

     

    欧氏空间(或者笛卡尔空间)描述2D/3D几何非常适合,但是这种方法却不适合处理透视空间的问题(实际上,欧氏几何是透视几何的一个子集合),2维笛卡尔坐标可以表示为(x,y)。

     

    如果一个点在无穷远处,这个点的坐标将会(∞,∞),在欧氏空间,这变得没有意义。平行线在透视空间的无穷远处交于一点,但是在欧氏空间却不能,数学家发现了一种方式来解决这个问题。

     

    方法:齐次坐标

    简而言之,齐次坐标就是用N+1维来代表N维坐标

     

    我们可以在一个2D笛卡尔坐标末尾加上一个额外的变量w来形成2D齐次坐标,因此,一个点(X,Y)在齐次坐标里面变成了(x,y,w),并且有

    X = x/w

    Y = y/w

    例如,笛卡尔坐标系下(1,2)的齐次坐标可以表示为(1,2,1),如果点(1,2)移动到无限远处,在笛卡尔坐标下它变为(∞,∞),然后它的齐次坐标表示为(1,2,0),因为(1/0, 2/0) = (∞,∞),我们可以不用”∞"来表示一个无穷远处的点了,哈哈。

     

    为什么叫齐次坐标?

     

    我们把齐次坐标转化为笛卡尔坐标的方法是前面n-1个坐标分量分别除以最后一个分量即可。

     

     

     

     

     

     

     

    转化齐次坐标到笛卡尔坐标的过程中,我们有一个发现,例如:

     

     

     

     

     

     

     

     

    你会发现(1, 2, 3), (2, 4, 6) 和(4, 8, 12)对应同一个Euclidean point (1/3, 2/3),任何标量的乘积,例如(1a, 2a, 3a) 对应 笛卡尔空间里面的(1/3, 2/3) 。因此,这些点是“齐次的”,因为他们代表了笛卡尔坐标系里面的同一个点。换句话说,齐次坐标有规模不变性。 证明:两条直线可以相交 考虑如下方程组:

     

    我们知道在笛卡尔坐标系里面,该方程组无解,因为C ≠ D,如果C=D,两条直线就相同了。 让我们在透视空间里面,用齐次坐标x/w, y/w代替x ,y,

     

    现在我们有一个解(x, y, 0),两条直线相交于(x, y, 0),这个点在无穷远处。 小结:齐次坐标在图形学中是一个非常基础的概念,例如3D场景映射到2D场景的过程中

     

    、、、、、、、、、、、、、、、、、、

    注意一些要点

    1.齐次坐标又叫什么 投影坐标 当然了矩阵的第四维可以很好地处理投影问题 但是 我觉得他忽略了它对我来说更重要的作用

    就是 可以很好的将平移也代入到矩阵运算中,因为 x=x*a00+y*a10+z*a20 .如果没有z*a20如何在矩阵中表示平移呢会麻烦很多

     

    2.用齐次坐标表示无穷远处的点 是什么 是 (x,y,0) .

    3.多个齐次坐标可对应一个笛卡尔系坐标

    (1,2,3) (2,4,6)。。。。

     

    展开全文
  • 为什么叫齐次坐标系?  齐次坐标系,英文名称Homogeneous coordinate system。也就是说Homogeneous国内翻译为“齐次”,查询“齐次”的解释,谷歌翻译Homogeneous是“同质”的意思,百度翻译结果是“均匀的;同性质...

    为什么叫齐次坐标系?

      齐次坐标系,英文名称Homogeneous coordinate system。也就是说Homogeneous国内翻译为“齐次”,查询“齐次”的解释,谷歌翻译Homogeneous是“同质”的意思,百度翻译结果是“均匀的;同性质的,同类的;由相同(或同类型)事物(或人)组成的;[数]齐性的,齐次的”。所以从名字上我们不能顾名思义,只能先理解齐次坐标系在来思考这个名字了。

      首先我们先从齐次性开始理解。

    齐次性定义

    在百度百科里的解释:

    一般地,在数学里面,如果一个函数的自变量乘以一个系数,那么这个函数将乘以这个系数的k次方,我们称这个函数为k次齐次函数,也就是:
    如果函数 f(v)满足
    f(ax)=a^k f(x),
    其中,x是输入变量,k是整数,a是非零的实数,则称f(x)是k次齐次函数。
     
    比如:一次齐次函数就是线性函数2.多项式函数 f(x,y)=x^2+y^2
    因为f(ax,ay)=a^2f(x,y),所以f(x,y)是2次齐次函数。
     
    齐次性在数学中描述的是函数的一个倍数的性质。
     
    齐次坐标系

    以下摘自维基百科对于齐次坐标系的描述:

    在数学里,齐次坐标(homogeneous coordinates),或投影坐标(projective coordinates)是指一个用于投影几何里的坐标系统,如同用于欧氏几何里的笛卡儿坐标一般。该词由奥古斯特·费迪南德·莫比乌斯于1827年在其著作《Der barycentrische Calcul》一书内引入[1][2]。齐次坐标可让包括无穷远点的点坐标以有限坐标表示。使用齐次坐标的公式通常会比用笛卡儿坐标表示更为简单,且更为对称。齐次坐标有着广泛的应用,包括电脑图形及3D电脑视觉。使用齐次坐标可让电脑进行仿射变换,并通常,其投影变换能简单地使用矩阵来表示。

    实投影平面可以看作是一个具有额外点的欧氏平面,这些点称之为无穷远点,并被认为是位于一条新的线上(该线称之为无穷远线)。每一个无穷远点对应至一个方向(由一条线之斜率给出),可非正式地定义为一个点自原点朝该方向移动之极限。在欧氏平面里的平行线可看成会在对应其共同方向之无穷远点上相交。给定欧氏平面上的一点 (x, y),对任意非零实数 Z,三元组 (xZ, yZ, Z) 即称之为该点的齐次坐标。依据定义,将齐次坐标内的数值乘上同一个非零实数,可得到同一点的另一组齐次坐标。例如,笛卡儿坐标上的点 (1,2) 在齐次坐标中即可标示成 (1,2,1) 或 (2,4,2)。原来的笛卡儿坐标可透过将前两个数值除以第三个数值取回。因此,与笛卡儿坐标不同,一个点可以有无限多个齐次坐标表示法。

    一条通过原点 (0, 0) 的线之方程可写作 nx + my = 0,其中 n 及 m 不能同时为 0。以参数表示,则能写成 x = mt, y = − nt。令 Z=1/t,则线上的点之笛卡儿坐标可写作 (m/Z, − n/Z)。在齐次坐标下,则写成 (m, − n, Z)。当 t 趋向无限大,亦即点远离原点时,Z 会趋近于 0,而该点的齐次坐标则会变成 (m, −n, 0)。因此,可定义 (m, −n, 0) 为对应 nx + my = 0 这条线之方向的无穷远点之齐次坐标。因为欧氏平面上的每条线都会与透过原点的某一条线平行,且因为平行线会有相同的无穷远点,欧氏平面每条线上的无穷远点都有其齐次坐标。

    概括来说:

    • 投影平面上的任何点都可以表示成一三元组 (X, Y, Z),称之为该点的'齐次坐标或投影坐标,其中 X、Y 及 Z 不全为 0。
    • 以齐次坐标表表示的点,若该坐标内的数值全乘上一相同非零实数,仍会表示该点。
    • 相反地,两个齐次坐标表示同一点,当且仅当其中一个齐次坐标可由另一个齐次坐标乘上一相同非零常数得取得。
    • 当 Z 不为 0,则该点表示欧氏平面上的该 (X/Z, Y/Z)。
    • 当 Z 为 0,则该点表示一无穷远点。
    • 注意,三元组 (0, 0, 0) 不表示任何点。原点表示为 (0, 0, 1)[3]。

      从上面的描述我们知道齐次坐标是用于投影几何里的坐标系统,和平时我们用的笛卡尔坐标系一样,是帮助我们理解宇宙的工具。但因为这是两种不同的坐标系,我们需要跳出笛卡尔坐标系,以更宏观的思维来理解,不然有些场景会让我们困惑。

      首先我们把下方的这个投影描述图印在脑海中。

     

      考虑一个点p,它的笛卡尔坐标是(x,y),齐次坐标是(x,y,1),齐次坐标比笛卡尔坐标多一个维度,按照现在书上和网络上的理解基本都是说笛卡尔坐标系就是齐次坐标系中w=1的那个平面,(x,y,1)是齐次坐标(kx,ky,k)表示的点在w=1上的映射。因为一开始我把这个投影想成了正交投影,所以总感觉不对。

      那为什么要引入齐次坐标系了?

      上面也提到了,主要是方便计算机图形学进行仿射几何变换。简单的理解就是可以使用矩阵同时描述旋转和平移,这样我们就可以使用矩阵相乘来表述物体的旋转、缩放和平移了,具体内容可参照《计算机图形学》等书籍或者网上的资料。

      如:https://oncemore.wang/blog/homogeneous/

     

    无穷远的点

      使用(∞,∞)?所以在笛卡尔坐标系中无穷远的点是没有定义的。但这个在齐次坐标系统中可以用w=0来表示无穷远的点,即任何(x,y,0)表示无穷远的点。

    两条平行线在无限远处相交

      笛卡尔坐标系中两条平行线没有交点,即使在三维空间也是,但在齐次坐标系中它们在无穷远点相交。

    引申的理解  

     1.坐标系理解

      在笛卡尔坐标系中有一个原点(0,0),对于这个点我以前没有过多的考虑,后来参考了很多资料,有一个说法,想象在宇宙中有一个绝对坐标系,对于我们现在使用的笛卡尔坐标系,其原点位于(a,b)点,当然同时也就还有无数的相同的坐标系,只不过它们的原点不同,对于笛卡尔坐标系中的点(x,y),它对于所有的笛卡尔坐标系都是相同的,有点多维宇宙的感觉,其中一个坐标系就是一个宇宙。我觉得这种思维也很有意思。

      2.向量和点

      关于向量和点,我觉得下面的这边文章说的很好,大家可以参考。

      https://blog.csdn.net/winbobob/article/details/38829001

     

      以下都是我根据这篇博客的得来的感悟。描述一个点比描述一个向量需要更多的信息。我们平时的描述一个点时,其实都忽略了一个信息,即参照点的信息,我们都是基于参照点描述一个点的位置,这个参照点就是原点。下面是我从上面博客截取的一段关于点和向量的一个解释:

    对于一个向量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),

    从上面对向量和点的表达,我们可以看出为了在坐标系中表示一个点(如p),我们把点的位置看作是对这个基的原点o所进行的一个位移,即一个向量——p – o(有的书中把这样的向量叫做位置向量——起始于坐标原点的特殊向量),我们在表达这个向量的同时用等价的方式表达出了点p:p = o + p1 a + p2 b + p3 c   (3) 

    (1)(3)是坐标系下表达一个向量和点的不同表达方式。这里可以看出,虽然都是用代数分量的形式表达向量和点,但表达一个点比一个向量需要额外的信息。如果我写出一个代数分量表达(1, 4, 7),谁知道它是个向量还是个点!

        我们现在把(1)(3)写成矩阵的形式:v = (v1 v2 v3 0) X (a b c o)

    p = (p1 p2 p3 1) X (a b c o),这里(a,b,c,o)是坐标基矩阵,右边的列向量分别是向量v和点p在基下的坐标。这样,向量和点在同一个基下就有了不同的表达:3D向量的第4个代数分量是0,而3D点的第4个代数分量是1。像这种这种用4个代数分量表示3D几何概念的方式是一种齐次坐标表示。

      

      上面的推导很完美,但还是有种只知其然的感觉。其实这里有一个非常重要的点没有指出来,就是变换对应矩阵的乘法。这里的变换有平移、旋转、缩放。我们做的这些推导都是想要用矩阵的乘法来表示变换,只有这样上面的推导才不显得突兀。而齐次坐标系的出现,也是处于计算机使用矩阵乘法来表示仿射变换的需求。所以理解齐次坐标系,很重要的一点就是为什么我们需要齐次坐标系。 

      对于齐次坐标系,我一直想知道它的几何意义,但由于使用欧氏几何的三维空间来理解,总是不得要领。现在觉得,首先我们要明白这些坐标系都是我们理解这个世界的工具,有些工具对于世界的描述很贴合我们对于世界的想象,所以常用,但另外一些工具是从其它的角度来解读这个世界的,在我们使用这些工具之前,我们需要跳出原先的思维(如齐次坐标系再更高维度的仿射变换映射为低维度的平移),这样才能更好的理解这个世界的本质。

     

    转载于:https://www.cnblogs.com/xin-lover/p/9486341.html

    展开全文
  • 笛卡尔坐标系齐次坐标系

    千次阅读 2018-11-24 00:35:00
    3 齐次坐标系 笛卡尔坐标系转线性坐标系: 线: 点(多添加1维为1的元素): 线性坐标转笛卡尔坐标: 点 具有尺度不变性: 对齐坐标进行放缩,笛卡尔坐标不变 线性坐标系下运算: 两点所在...
  • 几何变换——关于透视变换和仿射变换以及齐次坐标系的讨论 2019/10/26 FesianXu 前言 在本文首先介绍了引入齐次坐标系的必要性,随后介绍了在几何变换中常见的投射变换和仿射变换,这俩种变换在计算机视觉问题中...
  • (向量叉乘其实就是求两个向量所在平面的法向量,但要注意的是v1*v2和v2*v1是不同的,这两的叉乘的结果代表着一个面存在的两个法向量的值) 齐次坐标系 齐次坐标系在我的理解就是将三维空间中的点位数据降维到二维...
  • 齐次坐标系下的矩阵旋转与平移

    千次阅读 2019-05-21 18:55:01
    此博客是参考大佬简书:https://www.jianshu.com/p/c3e887c4c4f4,自己动手推了一遍,感兴趣的小伙伴也可以自己动手推一下。
  • 参考Homogeneous Coordinates ,Michigan Technological University 的 Dr. C.-K. Shene写的Introduction to Computing ...引入齐次坐标系的原因之一是为了描述infinity(无穷远点)。 One of the many purposes...
  • 计算机视觉中的齐次坐标系

    千次阅读 2018-03-09 14:17:52
    对于齐次坐标系,感觉是计算机视觉中还是比较常用的,之前比较不清楚,看了网上大神的博客还有《Robotics,Vision and Control》之后,有了一定的了解,在这里总结下。 **“ 齐次坐标表示是计算机图形学的重要手段...
  • 一、机器人基础数学知识: 笛卡尔坐标系 笛卡尔坐标系(Cartesian coordinates)就是直角坐标系和斜角坐标系的统称。...二、关于齐次坐标的理解(经典) 问题:两条平行线可以相交于一点 在欧氏几何空间,同一
  • 3分钟理解齐次坐标系

    千次阅读 2018-11-24 11:14:20
    本文用于初学者学习齐次坐标系。博主也是通过这篇文章学习的,认为该文章通俗易懂,并且非常形象,所以转载,供各位读者观看,同时以防博主遗忘知识点。 下面开始进入正题: ... 齐次坐标在电脑图形内无处不在,因为该...
  • 齐次坐标概念&&透视投影变换推导 透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视...
  • 齐次坐标系:https://www.cnblogs.com/xin-lover/p/9486341.html
  • 齐次坐标系漫谈

    千次阅读 2018-06-12 16:36:23
    首先声明齐次坐标主要应用于图像处理,如果其它领域的可忽略本博客。...1 为什么使用齐次坐标系(homogeneouscoordinates) 表示投影空间的无穷远(infinity),主要包括无穷远点(也称消失点,vanishing poin...
  • 齐次坐标

    千次阅读 2019-08-05 11:49:28
    本文是一些关于齐次坐标只是的整合。 https://www.sohu.com/a/258317807_100007727 http://www.songho.ca/math/homogeneous/homogeneous.html https://blog.csdn.net/VenoBling/article/details/87794400 ...
  • 关于齐次坐标的理解

    千次阅读 多人点赞 2018-10-12 14:19:46
    目录 [第一篇:关于齐次坐标的理解(经典)](https://blog.csdn.net/janestar/article/details/44244849)[第二篇:齐次坐标的理解](http://www.cnblogs.com/csyisong/archive/2008/12/09/1351372.html)[第三篇:如何...
  • 理解齐次坐标

    2020-07-05 21:14:37
    齐次坐标的引入 在欧式空间里,两条公面的平行线无法相交,但是在投影空间(Projective Space)里不是这样。一个直观的表示如下:两条轨道的间距随着视线变远而逐渐变小,直到在无限远处相交...例如在二维齐次坐标系中.
  • [译]齐次坐标系

    2017-09-29 18:25:07
    原文地址问题:两条平行直线可以相交在欧氏几何中,同一平面的两条直线是不可能相交的,这是大家都熟悉的常识。但是,在一个透视空间中,这是不正确的。...在笛卡尔坐标系中,一个二维坐标可以用(x,
  • 为什么要引入齐次坐标齐次坐标的意义(一)

    万次阅读 多人点赞 2019-07-09 19:43:30
    问题:两条平行线可以相交于一点 在欧氏几何空间,同一平面的两条平行线不能相交,这是我们都熟悉的一种场景。 然而,在透视空间里面,两条平行线可以相交,例如:...几何的一个子集合),2维笛卡尔坐标可以表示为...
  • 什么是齐次坐标系齐次坐标系的引入是为了将坐标的平移、旋转、缩放及透视投影等可表示为单一矩阵与向量相乘的一般向量运算。从而在进行图形处理时简单有效。如以矩阵表达式来计算这些变换时,平移是矩阵相加,旋转...
  • 齐次坐标变换

    万次阅读 多人点赞 2018-01-24 18:15:17
    齐次坐标 在二维平面内,我们用一对坐标值(x,y)来表示一个点在平面内的确切位置,或者说是用一个向量(x,y)来标定一个点的位置。 假如变换前的点的坐标为(x,y),变换后的点坐标为(x*,y *),这个变换过程...
  • 齐次坐标就是在欧氏空间表示的基础上增加一个额外的变量w来表示原本的坐标(X,Y),并同时需要令x = Xw , y = Yw ,最终得到齐次坐标(x, y, w),w为非0变量,只有点在无穷远处时才等于0 而当该点在二维空间的
  • OpenGL 之 齐次坐标

    2022-03-25 10:45:42
    即它提供了用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法。 矩阵相乘 矩阵变换 使用矩阵进行变换的真正力量在于,根据矩阵之间的乘法,我们可以把多个
  • 齐次坐标系齐次坐标系是图形学最基础的知识之一。齐次坐标能够帮助欧式坐标系处理透视问题。在欧式坐标系中,我们往往不能处理透视问题(远处相交)。为什么会有齐次坐标系在我们正常思维里,二维坐标中两条线段如果...
  • 动手学坐标变换、齐次矩阵生成、(四元数+欧拉角)、齐次坐标运算、ROS、ROS2
  • 引言都知道旋转矩阵表达的是刚体(坐标系{B})相对参考坐标系{A}的姿态信息,那如何利用已知的旋转矩阵,将{A}旋转一定角度变成与{B}一样的姿态呢?有几种方法:固定角旋转、欧拉角旋转、angle-axis表达法、Quaternion...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,456
精华内容 5,382
关键字:

齐次坐标系

友情链接: ECS-2UZ.pdf.zip