OpenGL入门第四步:摄像机视角变换与交互

OpenGL入门第一步:创建窗口、重写虚函数-CSDN博客

OpenGL入门第二步:颜色、纹理设置(解析)-CSDN博客

OpenGL入门第三步:矩阵变换、坐标系统-CSDN博客

目录

函数解析 

具体代码


函数解析 

相机视角变换需要与鼠标键盘进行交互,需要重写鼠标和键盘响应函数。

初始化

timerEvent(QTimerEvent *event)函数:设置移动速度和对应按键移动方向,以及摄像机的摆放位置

glm::LookAt函数需要一个位置、目标和上向量。知道相机上方向和前方向,可以通过矩阵叉乘得到右方向,从而建立相机坐标系(右手坐标系)。位置是相机坐标系在整个世界坐标系下的位置。 

enterEvent(QEvent *event)函数

鼠标只要经过窗口就会被置于中心,不隐藏指针就是下面的效果。

 mouseMoveEvent(QMouseEvent *event)函数

 wheelEvent(QWheelEvent *event)函数:实现缩放效果。当视野变小时,场景投影出来的空间就会减小,产生放大了的感觉。

 keyPressEvent(QKeyEvent *event)、keyReleaseEvent(QKeyEvent *event)函数:键盘响应

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/624378.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何安装在系统中安装make命令

文章目录 WindowsMacUbuntuCentOS/Red Hat make是系统比较基础的命令,一般会自己携带,如果没有就手动安装一下吧。 Windows 从官网下载 make.exe Make for Windows 官网首页:https://www.gnu.org/software/make/ 下载地址:htt…

mac安装禅道(局域网访问、远程访问)

前提已安装:phpapacheMySQL macOS12 安装 php8.1/apache-CSDN博客 安装MySQL 一、禅道下载 安装官方文档 源码包下载地址:禅道 18.10 从下图可看出:windows和linux一键安装,方便很多 1. 解压禅道源码包 2. 将解压后的文件复制到…

C++基础——继承(上)

一、继承的概念 继承 (inheritance) 机制是面向对象程序设计使代码可以复用的最重要的手段,它允许实现者保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称之为派生类; 继承呈现了面向对象程序设计的层次结构…

升级Microsoft 365后,SAP GUI中无法打开Excel的解决方案

最近,我们遇到了一个棘手的问题,一位客户在升级到Microsoft 365后,无法在SAP GUI中打开Excel。这个问题不仅影响了工作效率,也给用户的日常操作带来了不便。在本文中,我们将探讨问题的成因,并提供一种解决方…

2024年【河北省安全员B证】考试及河北省安全员B证复审模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 河北省安全员B证考试参考答案及河北省安全员B证考试试题解析是安全生产模拟考试一点通题库老师及河北省安全员B证操作证已考过的学员汇总,相对有效帮助河北省安全员B证复审模拟考试学员顺利通过考试。 1、…

[vue] nvm

nvm ls // 看安装的所有node.js的版本nvm list available // 查显示可以安装的所有node.js的版本可以在可选列表里。选择任意版本安装,比如安装16.15.0 执行: nvm install 16.15.0安装好了之后。可以执行: …

【2024】最新快手小游戏项目,边玩游戏边赚钱,周赚4000+!快手怎么赚钱,快手干货分享!

大家好,我是一个99年互联网创业者。 相信老朋友对我也不陌生啦! 但还是有一些新朋友,在这里我再做个简单的自我介绍吧。 我是做网赚出身的,大大小小的项目都接触过,后面转型做互联网开发程序这块,到现在…

更快!更自然!OpenAI推出GPT-4o,记者实测→

导读:第一财经记者使用GPT-4o来描述图片,发现其生成结果较准确,5秒左右就能生成描述图片的文字。 当地时间5月13日,OpenAI通过直播展示了产品更新。与此前传出的市场消息不同,OpenAI并未推出搜索引擎,也未…

常见加解密算法02 - RC4算法分析

RC4是一种广泛使用的流密码,它以其简洁和速度而闻名。区别于块密码,流密码特点在于按位或按字节来进行加密。 RC4由Ron Rivest在1987年设计,尽管它的命名看起来是第四版,实际上它是第一个对外发布的版本。 RC4算法的实施过程简洁…

OpenText ETX 助力 SMS 集团提高生产力、降低成本并实现全球协作

OpenText ETX 助力 SMS 集团提高生产力、降低成本并实现全球协作 SMS 集团存在的挑战 需要一个可以在全球范围内轻松访问的解决方案;需要一个系统,能够无缝运行图形要求苛刻的基于服务器的应用程序; 结果 1、通过全球用户访问数据&#x…

el-table组件选中后使用toggleRowSelection无法取消已选中的数据——bug记录-骚操作解决

先说本文重点解决的问题: 存在的问题:当右侧已选中的数据中,删除了左侧其他页面的数据,但是左侧数据切换到其他页面后,左侧还保留选中的状态。 最近在写后台管理系统的时候,遇到一个需求: 左…

鬼畜作品创作必备素材,鬼畜自学语音包合集

一、素材描述 鬼畜是什么?鬼畜是一种网络流行语,也是网络文化的一种表现形式。它指的是将原本无关的两个或多个视频、音频、图片或文字进行剪辑、混合、重组等处理后,形成一种新的有趣、诙谐或恶搞的作品。鬼畜的制作过程通常需要一定的技术…

使用PyQt5设计订单查询界面—了解界面布局2

想要实现的界面效果 增加Tab Widge的页签 在MainWindow窗口中选中水平布局,将一个Label控件和一个默认自带两个页签的Tab Widget控件放到水平布局中,Tab Widget控件右键选择“插入页”再选择“在当前页之后”增加页签。 为每一个Tab页签界面都选择“栅格…

【学习笔记】C++每日一记[20240513]

简述静态全局变量的概念 在全局变量前加上static关键字,就定义了一个静态全局变量。通常情况下,静态全局变量的声明和定义放在源文件中,并且不能使用extern关键字将静态全局变量导出,因此静态全局变量的**作用于仅限于定义静态全…

【driver6】debugfs,性能优化,

文章目录 1.内核调试手段:debugfs.h中api建立目录/sys/kernel/debug2.性能优化:裸磁盘无法使用,一般都刷文件系统。驱动加上要考虑磁盘io,内存占用,cpu使用情况3.Valgrind内存泄漏排查案例:4.cpu瓶颈&#…

ArrayList的深拷贝与浅拷贝

1、深拷贝 通过以下代码进行理解 import java.util.ArrayList; import java.util.List;public class Demo {public static void main(String[] args) {List<Integer> c new ArrayList<>();c.add(1);c.add(2);c.add(3);List<Integer> c1 new ArrayList<…

部署Discuz论坛项目

DIscuz 是由 PHP 语言开发的一款开源社交论坛项目。运行在典型的LNMP/LAMP 环境中。 安装MySQL数据库5.7 主机名IP地址操作系统硬件配置discuz-db192.168.226.128CentOS 7-mini-20092 Core/4G Memory 修改主机名用来自己识别 hostnamectl set-hostname discuz-db #重连远程…

海外仓管理优化策略:花更少的钱,收获更大的收益

海外仓成本确实越来越高了。 仓储成本和人力成本几乎占据了海外仓经营成本的一大部分&#xff0c;这严重的影响了海外仓企业的盈利能力。如果你正打算开设海外仓业务或者已经在经营海外仓业务&#xff0c;那这个问题一定不能忽视&#xff0c;毕竟成本越高&#xff0c;就意味着你…

中北机械有限公司将参加2024长三角快递物流供应链与技术装备展览会

参展企业介绍 浙江中北机械有限公司总部位于浙江杭州&#xff0c;生产基地位于浙江桐乡。是一家有着十几年金属制品及仓储物流设施设备生产经验&#xff0c;专业设计、生产、制造各类物流钢制托盘&#xff0c;物流手推车&#xff0c;仓储货架及门店展架&#xff0c;宣传展架等物…

力扣HOT100 - 198. 打家劫舍

解题思路&#xff1a; 动态规划 class Solution {public int rob(int[] nums) {int len nums.length;if (nums null || len 0) return 0;if (len 1) return nums[0];int[] dp new int[len];dp[0] nums[0];dp[1] Math.max(nums[0], nums[1]);for (int i 2; i < len;…