网站地址栏云南省建设厅标准员网站
网站地址栏,云南省建设厅标准员网站,设计网站有哪些,网站改版 更换服务器 排名丢失齐次坐标(Homegeneous Coordinates)在学习齐次坐标之前#xff0c;我们要先好奇的问一下#xff0c;为什么要学习齐次坐标。上一节课#xff0c;我们学习了变换的三种基本形式#xff1a;旋转#xff0c;缩放#xff0c;和切变。但是还有一种特殊的变换#xff1a;Trans… 齐次坐标(Homegeneous Coordinates)在学习齐次坐标之前我们要先好奇的问一下为什么要学习齐次坐标。上一节课我们学习了变换的三种基本形式旋转缩放和切变。但是还有一种特殊的变换Translation(平移变换)从上边的图中我们可以看到左边的图x在x方向移动后变成了Tx y在y方向移动变成了Ty变成了右边的图。我们可以用一种简单的代数来表达虽然上边的表达看似简单但是学过矩阵后我们思考一下是否可以把上边的平移依然可以像上节课的公式那样写成某一个变换矩阵x 向量(xy)我们会发现不能。而我们只能写成下面这样一种形式因为X 需要变成axby一个常量Y变成bxcy一个常量。这种常量的引入导致平移变换没办法用一个矩阵乘以一个向量的公式来表达。为了统一平移变换跟其他三种变换用一种表达式来表达人类发明了一种方法可以通过多添加一个维度来对齐统一各种变换。那么用齐次坐标来表示针对2D空间中的一个点可以写成这样一个平移公式在二维里一个点和向量可以增加一个维度来表示。上边的公式会发现2D空间中的一个点我们通过增加第三个维度多了一个1或者0来表示。这种表达后我们就可以在结果中来变相的表达之前代数的表达形式, 如下边红框标注的这样表示出了线性变化一个常数这种通过多增加一个维度来表示2D空间中的点叫做齐次坐标。这里要注意到上边的表达。一个2D中的点如果想用来表示这个点依然是一个标量点,我们给它引入一个等于1的数变成(xy1)。如果想用来表示这个点是个向量即从原点指向这个点的一个方向我们写成(xy0)。思考我们为什么要把一个点区分成标量和向量两种表达呢一个添加为0一个添加为1 答案向量被称作向量就是因为它有方向性它在空间平移后它的方向是不变。所以向量具有平移不变性。所以我们用其次坐标来表示一个点的时候当他跟一个平移矩阵相乘后得出的向量依然应该是它本身。所以(xy0)中的0就起到了保护向量平移后不变的作用因为0乘以任何数都等于0。那么为什么标量添加的第三个维度是1 呢我们来看下边四个公式两个vector相加依然是个vector。例如三角形法则两个向量相加得出一个新的向量。空间中两个点相减表示被减数指向减数的向量。例如(x,y,1)- (x,y,1) (x-x, y-y, 0) 这样一个 从(xy)指向(xy)一个向量。一个点 加一个vector意思是空间中一个点沿着一个方向移动到一个新的点上。那么依然是一个点。一个点加一个点:本身没什么意义。但是我们可以先借助下边的公式定义在齐次左边中空间中的一个w不等0的点都可以表示成上述w1的一个2D的点。那么利用上边这个定义我们可以得出两个点相加等于这两个点所形成的线段的中点。 (大家可以自己思考一下为什么是中点)总结 引用齐次坐标的目的就是希望把所有的仿射变换都写成一个矩阵乘以一个列矩阵的形式。对于任何一种变换如果我们不能只用一个矩阵乘以向量来完成例如平移这种变换而且都要额外通过加上一个平移常量我们管这种变换叫做仿射变换(Affine Transformations)。仿射变换所有的仿射变换都可以写成齐次坐标的表现形式:我们来看一下齐次坐标的表达式做一下总结它的最后一行永远是(001)他的平移永远写在最后一列那么我们按照齐次坐标的方法可以把上节课的二维的仿射变换都可以变成齐次坐标来表达逆变换(Inverse Transform)图中的时钟经过一个M变化后变成右边然后再通过逆矩阵回到原来的左下角,如上图所示。这就叫逆变换。我们会发现一个矩阵乘以一个自己的逆矩阵就是单位矩阵。单位矩阵的意思就是没有发生变化。变化的组合那接下来我们看变换的组合。思考下边的变换是怎么完成的呢思考1我们是否可以先平移然后再旋转尝试先平移再旋转。尝试后我们发现如果先平移再旋转得到的结果并不是我们想要的。注意我们所说的旋转是指围绕原点的旋转。思考2我们是否可以先旋转然后再平移尝试先旋转再平移。这种尝试是可行的。通过上边的例子我们可以得出两个结论复杂的变化可以通过一系列简单的变换来组成这些变换的顺序非常重要顺序的不同最终的变换结果也不同。通过上边的两个结论我们转换成矩阵的角度可以这么解释一个向量的变换可以通过多个变换矩阵按照依次的顺序相乘来完成。所以变换矩阵的顺序很重要。矩阵相乘不满足乘法交换律。变换矩阵的是从右向左依次施加的。接下来总结公式变换的重合可以把所有的变换矩阵A1A2A3。。。An依次相乘合成一个复杂的变换矩阵。然后跟一个向量相乘最终完成对一个向量的复杂变换操作。变换的分解变换可以重合就可以分解。思考下边的一种平移把下图的左下角的一个图形变换成最右边的那个图形怎么操作答案先平移到原点旋转再平移回去。3D Transformations为了解决平移这种非线性变换2D空间中的变换我们引用了齐次坐标的方法在解决3D变换的时候我们也希望用一个统一方法来解决3D空间中的变换。3D空间中的一个点用齐次坐标来表示引入一个新的数。1表示一个点0表示它是一个向量。那么(x,y,z,w)其实表示的是三维空间中的一个点(x/wy/wz/w1)其中那个1表示它是3D空间的中一个点。所以在3D空间中齐次左边所标注的空间的点和矩阵的变换就是一个4x4的矩阵思考上边这样的一个公式里是先线性变换再平移还是先平移再线性变换呢答案跟2D一样是先做线性变换再做平移。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89420.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!