计算机图形学二:变换

 我来答
玄雨螺A
2022-07-22 · TA获得超过2916个赞
知道小有建树答主
回答量:627
采纳率:80%
帮助的人:83.4万
展开全部

1.模型变换
2.视图变换

理解变换表达成矩阵:
1.左边一张图,图上任一点都可以表达成[x,y]的两行一列矩阵
2.左边的图经过变换得到右边的图,图中任一点都是经过了同样的变换过程,也就是x'和x,y'和y有一个确定的关系
3.这个关系就可以表达成一个矩阵,叫做变换矩阵,这个矩阵乘上原始的点[x,y]就能得到变换后的[x',y']
上面两张图是缩放变换:可以写成一个点矩阵乘上一个变换矩阵,这个[s00s]也叫做缩放矩阵

仍然可以写成矩阵相乘,只不过s有两个值

翻转矩阵

剪切变换:y没变,x增加了y*a,可以表达成矩阵
切变矩阵

旋转矩阵

这种变换叫做线性变换

1.平移变换无法写成上面线性变换的形式
2.因此通过再增加一项[tx,ty],就可以表达平移

1.引入了一个新的值,当表示二维点时,增加一个1,当表示二维向量时,增加一个0.
2.增加了一个1之后,变换矩阵表达如上面所示,可以表达出平移的变化了
3.之所以表达向量用0,是因为这样的话,变换之后的矩阵不会变,这对应了向量平移方向不变的特性

1.向量+向量=向量,(x1,y,1,0)+(x2,y2,0)
2.点-点 = 向量,坐标中从一个点指向另一个点的向量(x1,y,1,1)-(x2,y2,1)
3.点+向量(x1,y,1,1)-(x2,y2,0),点沿着向量移动
4.点加点得到两点之间的中点,上图最下面的表达式,把表达点的1换成w,(x,y,1)换成(x/w,y/w,1),这样的话(1,1,1,)+(3,3,1)=(2,2,1)

1.综合线性变换和平移变换,可以叫做仿射变换
2.放射变换引入齐次坐标就可以把各种情况都写成两个矩阵的乘

1.图中上下都是变换2次.但是顺序不同,结果也不同,变换用矩阵表达就是乘上一个矩阵,不同的结果正好符合了矩阵乘法不遵循交换律这一点

1.变换时,矩阵的应用是从右到左的,图中,最左边是原来的点,等式左边表示的是两次变换的结果,但是其实步骤是先右后左,是先旋转,再平移,等式右边先从右边开始算
2.不过矩阵乘法遵守结合律,因此是可以先把左边所有的操作全部先算好,得到一个矩阵,无论变换的过程多复杂.这个矩阵都能表达,最后拿原来的点去乘上这个矩阵,也可以得到最终结果

1.图中的问题是以点(c,c)为原点旋转,直接旋转行不通的
2.这里先平移变换,x和y都减去c,然后旋转,最后再平移回去,这样就可以全部对应几种仿射变换

三维的情况是4x4的矩阵:
1.同样最右边的tx,ty,tz表示平移,左边的a到i表示线性变换
2.齐次坐标表达式是先应用线性变换,再平移

描述了旋转θ和-θ的旋转矩阵:
1.旋转矩阵的逆等于旋转矩阵的转置

1.统称viewing transformation
2.分为视图和投影两种
3.投影有两种不同的投影,正交和透视

三维的缩放和平移与二维完全一致,只是多一个行列

三维的旋转比较复杂,这里是三种特殊情况:
1.分别是绕三个轴旋转,
2.围绕x轴旋转时,x是不变的,因此第一行和第一列都是(1,0,0);后面的(cosα,sinα,cosα,-sinα)对应了y和z轴上的变化
3.绕z轴旋转与绕x轴旋转类似
4.但是绕y轴旋转的矩阵中,左下角是-sinα,右上角是+sinα,与x和z矩阵相反,这是因为向量X 叉乘 向量Z只能得到反向的Y,必须是向量Z 叉乘 向量X才能得到向量Y,这里回忆一下向量叉乘

1.roll,调头旋转
2.yaw,倾斜旋转
3.pitch,仰角旋转
4.二维的旋转,是绕某一点为圆心的旋转,在三维中,则是绕一条线为轴进行旋转,计算时,二维以坐标轴原点为圆心,三维下则轴过原点,如果不过原点.就做分解,先平移再旋转,最后再平移回去

模型视图投影变换,MVP变换:
1.场景模型
2.角度视图
3.获得投影

如何理解:
1.当要把三维的场景变成一张二维的图片的时候,可以理解为相机拍照,相机与三维场景之间存在于坐标系中,为了方便研究,将整个系统连带相机与三维场景整个进行变换,变换的结果是相机处在原点,相机与三维场景是相对静止的,当相机变了,三维场景自然也就变了,并且整个系统都满足一个变换矩阵,得到相机那个点的变换,就可以应用到整个系统中.
2.把相机定义在原点,向上是Y,往-Z的方向拍摄(这里X叉乘Y是Z,-Z没有问题)

1.让相机处在原点.并且相机的三个轴(这三个轴确定了相机的拍摄角度,也就是mvp中的v)旋转到与X,Y,Z轴重合,于是整个系统被平移和旋转.

1.先做平移(右边的矩阵)再做线性变换
2.如写相机的旋转:这里采用的是逆变换(左下角矩阵),也就是把原点变换到相机所在位置的变换矩阵,然后根据旋转矩阵的转置就等于其逆变换的原理,就得到了相机的变换矩阵(右下角矩阵)

1.正交投影和透视投影
2.透视投影有透视效果,力立方体的边会交于一点,正交投影没有透视效果,立方体的边是完全平行的
3.投影的延伸汇集于一点形成锥形,称为视椎

正交投影:
1.定义一个矩阵
2.平移到原点,因为是移到(0,0,0)所以平移矩阵的第三列是负的
3.缩放到[-1,1],-1到1长度是2,所以缩放倍率是2/边长

推导透视投影

1.前面说到,表示一个点可以写成(x,y,z,1),在统一模型时,写成(x/w,y/w,z/w,w),事实上写成(xz,yz,z*z,z)也没有问题,表示的是同一个点,也就是说图中的(1,0,0,1)和(2,0,0,2)两个都是指点(1,0,0)

1.将左图中的远平面缩放成和近平面一样,然后做一次正交投影,合起来就是透视投影了
2.这其中:左边是相机,近平面的四个点不会变化,因此远平面到相机的距离,也就是的z值不会变,远平面的中心点不会变化
3.注意这不是变换某个点,也不是变换某个面,是这个立体都在变换,变换之后就成一个长方体了,也就是说这个立体上的任何一点都满足变换公式,现在就要推导出这个公式

1.左边是相机原点,Y是上,朝-Z方向看,把图像的中心轴放在z轴上,这样呈现出一个图像最终汇集在原点上的效果
2.不难得出一个相似三角形关系,得到y'=(n/z)y,z不变,x同样也满足x'=(n/z)x

1.通过第一步的分析,得到挤压后的点((n/z)x,(n/z)y,unknown,1),再根据前面点的表示那张图,进行变换,得到(nx,ny,unknown,z)

1.现在我们知道了一个4x4的矩阵,描述了一种变换,乘上点(x,y,z,1)之后,得到变换后的点(nx,ny,unknown,z),根据这个我们可以推出这个4x4矩阵大致如上图的最下面所示

1.再取一个特殊点,即远平面的中心点,它就在z轴上,假设z值是f,因此得到这个点是(0,0,f),这个点的这个点变换之后也不会发生变化,再根据第四步,得到同样的等式

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式