博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Opengl_4_平移变换
阅读量:4703 次
发布时间:2019-06-09

本文共 1056 字,大约阅读时间需要 3 分钟。

1,矩阵相乘

The most basic application of matrices is solving systems of linear equations.
2x+1y = 3;
4x+ 3y = 7;
关键就是一句话,矩阵的本质就是线性方程式,两者是一一对应关系。如果从线性方程式的角度,理解矩阵乘法就毫无难度。

下面是一组线性方程式。

矩阵的最初目的,只是为线性方程组提供一个简写形式。

老实说,从上面这种写法,已经能看出矩阵乘法的规则了:系数矩阵第一行的2和1,各自与 x 和 y 的乘积之和,等于3。不过,这不算严格的证明,只是线性方程式转为矩阵的书写规则。

下面才是严格的证明。有三组未知数 x、y 和 t,其中 x 和 y 的关系如下。

x 和 t 的关系如下。

有了这两组方程式,就可以求 y 和 t 的关系。从矩阵来看,很显然,只要把第二个矩阵代入第一个矩阵即可。

从方程式来看,也可以把第二个方程组代入第一个方程组。

上面的方程组可以整理成下面的形式。

最后那个矩阵等式,与前面的矩阵等式一对照,就会得到下面的关系。

矩阵乘法的计算规则,从而得到证明。

2,
图形变换让一个3d物体在屏幕中变换的时候看上去保持有深度的错觉,也就是立体的投影效果。
实现立体效果的方法是使用一个经过多次相乘的变换矩阵得到的最终变换矩阵来和顶点的位置再相乘,这样得到3d物体的一个多次变换后的最终复合变换效果。
实现平移的一种办法是设置一个偏移向量(这里就是- 1,1 了),并把这个便宜向量定义成一致变量然后传递给shader让每一个顶点按照那个偏移向量移动即可。但这样就打破通过乘以一个经过多个变换矩阵相乘得到的复合变换矩阵来进行复合变换的统一性了。
另外,如果平移变换变换不是一系列复合变换的第一个的话,你要先乘以平移变换之前的几个变换的复合变换矩阵,然后按照上面的方法平移图形,然后再乘以平移变换后面的复合变换矩阵(如果不止一个平移变换那么就要继续分解更繁琐了)
3,
一个更好的办法是找到一个表示平移变换的矩阵,并加入到复合变换中作为复合变换中的其中一种变换。
我们是想找到这样一个矩阵,对于给定的点P(x,y,z)和平移向量V(v1,v2,v3),能够使 M * P = P1(x+v1, y+v2, z+v3) ,简单地说就是矩阵M将P转换成了P+V。
对于得到P本身的向量
4,

转载于:https://www.cnblogs.com/liuhan333/p/6246543.html

你可能感兴趣的文章
azkaban用户管理及权限配置
查看>>
GCD学习笔记
查看>>
[转]Asp.net MVC中的ViewData与ViewBag
查看>>
PHP......会话控制SESSION与COOKIE
查看>>
[转]AchartEngineActivity引擎绘制柱状图、曲线图
查看>>
[转]javascript实现限制上传文件的大小
查看>>
2-SAT问题的算法
查看>>
2012年,将是HTML5决胜的一年
查看>>
DOM的事件操作
查看>>
利用powerdesigner创建数据库
查看>>
js 中数组的遍历
查看>>
【.NET】使用HtmlAgilityPack抓取网页数据
查看>>
工厂方法模式
查看>>
许愿墙的搭建基于mysql
查看>>
信息技术
查看>>
SQL中的内连接 外连接 左连接 右连接 全连接
查看>>
GitLab问题小结
查看>>
iOS-常用的辅助工具软件
查看>>
一道数学题
查看>>
虚函数 多层继承有重写 (3)
查看>>