齐次坐标(Homogeneous coordinates)
为什么要引入齐次坐标?
齐次坐标系的引入是为了将坐标的平移、旋转、缩放及透视投影等可表示为单一矩阵与向量相乘的一般向量运算。从而在进行图形处理时简单有效。如以矩阵表达式来计算这些变换时,平移是矩阵相加,旋转和缩放则是矩阵相乘,综合起来可以表示为
p ′ = m 1 ∗ p + m 2 p' = m_1*p+m_2 p′=m1∗p+m2
m1旋转缩放矩阵, m2为平移矩阵, p为原向量 ,p’为变换后的向量;引入齐次坐标的目的主要是合并矩阵运算中的乘法和加法,表示为
p ′ = p ∗ M p' = p*M p′=p∗M
它提供了用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法。
什么是齐次坐标系?
给定欧氏平面上的一点(x,y),对任意非零实数 Z,三元组(xZ,yZ,Z)即称之为该点的齐次坐标。依据定义,将齐次坐标内的数值乘上同一个非零实数,可得到同一点的另一组齐次坐标。
例如一条通过原点(0, 0)的线之方程可写作nx+my= 0,其中 n 及 m 不能同时为 0。笛卡儿坐标可写作(m/Z, −n/Z),Z不为0。在齐次坐标下,则写成(m, −n,Z)。当 Z趋向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)。为与以与笛卡儿坐标相区别,如以冒号代替逗号,以 (x:y:z) 代替(x,y,z),以强调该坐标有着比例的性质。亦有以方括号代替括弧,以[x,y,z]来强调有多个坐标表示同一个点。有些作者则会同时使用冒号与方括号,如 [x:y:z]。
齐次坐标系的重要性
1、区分向量和点
一个三维坐标的三个分量x,y,z用齐次坐标表示为变为x,y,z,w的四维空间,变换成三维坐标是方式是x/w,y/w,z/w,当w为0时,在数学上代表无穷远点,即并非一个具体的坐标位置,而是一个具有大小和方向的向量。从而,通过w我们就可以用同一系统表示两种不同的量。
在OPENGL中,作为坐标点时,w参数为1,否则为0,如此一来,所有的几何变换和向量运算都可以用相同的矩阵乘积进行运算和变换,当一个向量和一个矩阵相乘时所得的结果也是向量。
2、易于进行仿射变化(Affine Transformation)
仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。引入齐次坐标系,可以将一个仿射变换对应于一个矩阵和一个向量的乘法。
其中大部分内容参考百度百科,需要更加详细的内容可以看一下相关介绍!
Citations
https://baike.baidu.com/item/齐次坐标/511284?fr=aladdin#4
https://baike.baidu.com/item/仿射变换/4289056?fr=aladdin
https://blog.csdn.net/yun_0_yun_/article/details/67637162
齐次坐标(Homogeneous coordinates)相关推荐
- Homogeneous Coordinates(齐次坐标)
Problem: Two parallel lines can intersect. 问题: 两条平行线会相交 铁轨在无限远处相交于一点Problem: Two parallel lines ca ...
- 齐次坐标(Homogeneous Coordinate)的理解
一直对齐次坐标这个概念的理解不够彻底,只见大部分的书中说道"齐次坐标在仿射变换中非常的方便",然后就没有了后文,今天在一个叫做"三百年 重生"的博客上看到一篇关 ...
- 齐次坐标(Homogeneous Coordinate)
齐次坐标就是将n维的向量用n+1维向量表示,增加了一个维度以后可以表达更多的信息: 在欧式距离中无法表示无穷远处的点,(∞,∞)是没有意义的.在齐次坐标中p=(x,y,0),就可以轻松的表示p点是一个 ...
- 齐次坐标(Homogeneous Coordinate)介绍
1.前言 "齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换."-- F.S. Hill, JR. 2.介绍 2.1 ...
- 射影几何笔记5:齐次坐标(Homogeneous coordinates)
一.起源 在数学中,齐次坐标或射影坐标由 August Ferdinand Möbius 在其 1827 年的著作 Der barycentrische Calcul [1][2][3] 中引入,是射 ...
- 齐次坐标 (Homogeneous Coordinate)
转自:http://www.cnblogs.com/xmzyl/articles/1604150.html 齐次坐标(Homogeneous Coordinate) 在空间直角坐标系中,任意一点可用一 ...
- 【射影几何05】齐次坐标系(Homogeneous coordinates)
一.说明 本章建立射影几何的坐标系,如何建立坐标系?回答,建立坐标系方法不止一种,其中齐次坐标系是一种方法. 二.齐次坐标的历史 在数学中,齐次坐标或射影坐标由 August Ferdinand Mö ...
- Learn OpenGL (五):向量
叉乘 叉乘只在3D空间中有定义,它需要两个不平行向量作为输入,生成一个正交于两个输入向量的第三个向量.如果输入的两个向量也是正交的,那么叉乘之后将会产生3个互相正交的向量.接下来的教程中这会非常有用. ...
- matlab z变换离散化_用C++编写一个简单的光栅化渲染器:3D篇
3D光栅化与2D光栅化在图元绘制方面差别并不大,3D光栅化主要是多了很多坐标系(Local,world,View...),除此外遮挡算法和裁剪算法也会稍微复杂一些. 本篇文章的重点就主要集中在各种坐标 ...
最新文章
- Merge into 详细介绍
- 给定两个数r和n_输出r的n次方 java_滴滴出行2018编程题
- python题库刷题训练软件_刷题 -- python计算器练习题
- FFmpeg 硬件加速方案概览 (上)
- react 最佳入门_miaov-React 最佳入门
- laragon环境安装新的php版本后弹出php startup
- java nio 连接数_Java NIO 基础一 NIO概念
- linxuwindows下JBOSS服务端口号及默认根应用修改
- mysql禁止远程连接
- Java基础-刘意经典版DAY1
- DT科技评论第35期:可以解锁任何手机的万能指纹
- linux访问mdio接口函数,Linux 下smi/mdio总线通信
- source insight 4.0 的一些设置
- postman更换皮肤
- python 估值模型_【中金固收·固收+】隐藏价值的角落:限售股AAP估值及Python实现方法(上)...
- 瑞星4月2日安全综述:网页挂马攻击严重
- 唯美多功能自适应个人主页源码html
- Typora一款让你无法拒绝的MarkDown编辑器
- 官宣:申请学位不与发表论文简单挂钩!
- Himall商城ExpressDaDaHelper订单预发布 查询运费后发单接口