1、矩阵具有坐标变换的作用,例如:左乘一个旋转矩阵,实现点的坐标旋转,左乘一个平移矩阵实现,点的平移

2、一个点可以同时串联相乘几个变换矩阵,实现坐标连续变换,根据左乘规则,右边矩阵先作用于点,作用顺序从右往左,例如:C*B*A*point(注:C,B,A分别为变换矩阵,point为一个vector3的位置向量,即点的x,y,z坐标)运算式子,矩阵A先作用于point,其次是B,C

3、QMatrix4x4矩阵类本身就支持translate,rotate,projection等连续变换函数,那么问题来了,这些变换的作用顺序是怎么样的,实际上和上面说的矩阵作用规则是一样的。

顺序是按照后变换,先作用的,具体如下,

matrix.perspective(45,w/h,0.1,100);     // 透视矩阵变换

matrix.translate(0.8,0,-5);                    // 平移变换

matrix.rotate(30,0,1,0)                        // 绕着y轴旋转30度

matrix*point;                                     // 注:此时这给点是先执行了旋转,再平移,最后透视处理。

// 而不是从上往下顺序,先透视,再平移和旋转

上面代码作用等同于如下代码:

matrix1.perspective(45,w/h,0.1,100);     // 用一个单独矩阵,透视矩阵变换

matrix2.translate(0.8,0,-5);                    // 用另一个单独矩阵,平移变换

matrix3.rotate(30,0,1,0)                         // 再用一个单独矩阵,绕着y轴旋转30度

matrix1*matrix2*matrix3*point;             // 先执行了旋转,再平移,最后透视处理
欢迎联系我qq2488890051

Qt中QOpengl的QMatrix4x4矩阵作用原理以及使用方法相关推荐

  1. QT中ui更改后不能更新的解决方法

    QT中ui更改后不能更新的解决方法 参考文章: (1)QT中ui更改后不能更新的解决方法 (2)https://www.cnblogs.com/qiaozhoulin/p/4509939.html 备 ...

  2. qt5设置linux系统时间,Qt中使用QLabel显示时间的两种方法

    Qt中使用QLabel显示时间的两种方法思路一致,只是实现方法不一样而已. main.cpp #include "displaytime.h" #include int main( ...

  3. 在QT中自定义头文件和源文件的使用方法

    在QT中自定义头文件和源文件的使用方法 最近想用QT来实现一个简单的功能,为了便于函数的集成需要将功能函数进行封装,自己补了些c++的函数封装方法,发现在QT中还不太一样.接来下简单介绍一下具体怎么实 ...

  4. Qt中,软件多语言国际化翻译的方法与步骤

    Qt中,软件多语言国际化翻译的方法与步骤 在Qt的项目开发过程中,有时软件要翻译成多语言版本,这就涉及到国际化方面的操作.虽然Qt对这方面集成了很多工具,操作起来比较方便,本文还是总结一下国际化的方法 ...

  5. 在QT中使用同步阻塞式HTTP请求的方法

    QT中对HttpRequest的实现是利用了QT的singal-slot实现的异步请求,虽然有时这很有用,比如节约时间,不会使UI卡住等,但有时,我们还是需要阻塞式的同步HTTP请求,因为在这个HTT ...

  6. QT中获取选中的radioButton的两种方法

    QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioButton* pbtn = qobject_cast&l ...

  7. Qt中常用的3种提示框设计方法

    Qt中常用的提示信息设计方法 [问题背景]通常,在项目项目开发的过程中,某些人机交互界面需要对用户的输入数据进行合法性判断,如果用户输入数据合法,则进入下一步流程,否则,就要给出相应的错误提示,以提示 ...

  8. qt中记录数据的一次接收处理方法

    引言 在udp通信中,发送请求后,等待接收端的响应,有时一个回应被分割成好几次发送,这种反馈的形式出现带有随机性,正常的情况下是一次反馈所有的数据,但是会出现一次反馈被分成好几次反馈.像下面这样: 请 ...

  9. Qt中提示“常量中有换行符“的解决方法

    使用QT编译界面时,免不了要使用中文,有会出现乱码,有时会提示"常量中有换行符",而不能正常编译,因此可以通过下面的方法解决. PS:本文的环境,QT5.7.1,VS2015 1 ...

最新文章

  1. 简单的分页控件(原创)
  2. 不合法的媒体文件 id_注意!伦敦男孩、DKNY、Coach、地素... 这些品牌的服装,抽检不合格...
  3. gitbash如何修改可恶的蓝色字体
  4. 一颗钉子能承受多大的重量?
  5. Linux 文件颜色含义
  6. 清除Linux终端命令的历史记录
  7. CentOS7 (64位) 下QT5.5 连接MySQL数据库(driver not loaded)
  8. nyoj---快速查找素数
  9. CSS伪选择器的使用-遁地龙卷风
  10. Excel添加下拉选项菜单的方法
  11. python实现斗地主发牌洗牌
  12. 计算机考研数据库题库
  13. do vis是什么意思_duck不必什么梗?李佳琦放过鸭子吧表情包
  14. cacti更改显示图像的title
  15. c语言的心形字符,C语言写的各种心形图案
  16. 全面理解面向对象的 JavaScript
  17. 公司新加了一台友宝自动售货机引发的思考-适配器模式
  18. win10未能解析服务器名,win10系统提示“无法解析服务器的dns地址”的修复方法...
  19. 华为路由交换RS 部分题库分享
  20. android 视频裁剪view拖动,android – 视频使用特定坐标裁剪或缩放?

热门文章

  1. pwa 让你的网页可以像本地程序一样安装到电脑上,Youtube网站使用的也是当前方法 (chrome版本)
  2. 技术美术知识学习5200:光追相关概念介绍
  3. WSTMart 1.4.2 发布,让 bug 不再飞
  4. 关于mac上如何U盘
  5. Fatal NI connect error 12170错误解决办法
  6. 大数据部门的作用与大数据工程师的工作
  7. 阿里云服务器和腾讯云不同的地方
  8. selenium自动化测试-鼠标键盘操作
  9. Fcitx 小企鹅输入法3.0.0
  10. Guava ImmutableSet源码去重处理,Hash处理