Cesium 学习笔记(一)-齐次坐标

目录

齐次坐标

标识点和向量

3D图形学中的特殊方程组求解

辅助运算


齐次坐标

 齐次坐标:用n+1维坐标表示n维坐标的方式称为齐次坐标。

意义:1.通过最后一维的数值来标识是点还是向量,w不为0时来表示点

           2.3D图形学中的特殊方程组求解

           3.辅助运算

标识点和向量

在3D世界中表示一个点的方式是:(x, y, z);然而在3D世界中表示一个向量的方式也是:(x, y, z);如果我们只给一个三元组(x, y, z)鬼知道这是向量还是点,毕竟点与向量还是有很大区别的,点只表示位置,向量没有位置只有大小和方向。为了区分点和向量我们给它加上一维,用(x, y, z, w)这种四元组的方式来表达坐标,我们规定(x, y, z, 0)表示一个向量,(x, y, z, 1)或(x', y', z', 2)等w不为0时来表示点。这种用n+1维坐标表示n维坐标的方式称为齐次坐标。

3D图形学中的特殊方程组求解

在欧氏几何空间,同一平面的两条平行线不能相交,这是我们都熟悉的一种场景。然而,在透视空间里面,两条平行线可以相交,例如:火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点。

简而言之,齐次坐标就是用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) = (∞,∞),我们可以不用”∞"来表示一个无穷远处的点了。
————————————————
版权声明:本文为CSDN博主「追求卓越583」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/95228010

辅助运算

主要是在空间变换的时候体现, 空间变换中的的旋转和缩放可以用矩阵乘法来表示,但是平移却需要用矩阵加法来表示。引入齐次坐标后 可以将平移的矩阵运算转化成乘法运算

 

显然:

这对于图像中的每一个点都是成立的。写成矩阵的形式就是:

我们再把前面的缩放变换和旋转变换的矩阵形式写出来:
缩放变换:

旋转变换:

我们注意到,缩放变换和旋转变换都可以表示成矩阵乘法的形式。实际上,图像的几何变换通常不是单一的,也就是说经常性的缩放、旋转、平移一起变换。例如先放大2倍,然后旋转45度,然后再缩小0.5倍。那么就可以表示成矩阵乘法串接的形式:

这样,不管有多少次变换,都可以用矩阵乘法来实现。但是平移变换呢?从前面看到,平移变换并不是矩阵乘法的形式,而是矩阵加法的形式!

那能不能把缩放变换、旋转变换、平移变换统一成矩阵乘法的形式呢,这样不管进行多少次变换,都可以表示成矩阵连乘的形式,将极大的方便计算和降低运算量。

这种方法就是“升维”,引入“齐次坐标”,将图像从平面2D坐标变成3D坐标。我们看看平移变换的矩阵形式:

将其升维,变成3维,上式就可以表示成:

这是个非常优美的地方,学习过矩阵乘法的同学可以算一下右边的式子,是否最终结果与前面是一样的。

这样,平移变换通过升维后的齐次坐标,也变成了矩阵乘法的形式。当然缩放变换和旋转变换的矩阵形式也得改一改,统一变成3维的形式。
 

参考:

https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/95228010 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值