Games101学习笔记 - 变换矩阵基础

chatgpt/2023/9/26 13:26:19

二维空间下的变换

缩放矩阵

缩放变换:

假如一个点(X,Y)。x经过n倍缩放,y经过m倍缩放,得到的新点(X1,Y1);那么新点和远点有如下关系,X1 = n*X,   Y1 =m*Y写成矩阵就是如下形式

<1>均匀缩放
在这里插入图片描述
<2>不均匀缩放
在这里插入图片描述

关于Y轴对阵矩阵

在这里插入图片描述

关于切变矩阵

在这里插入图片描述

关于旋转矩阵

在这里插入图片描述
注意:上图是默认二维旋转的是以远点为圆转重心,并且逆时针旋转

旋转矩阵推导原理:
在这里插入图片描述

规律

	对于任意的变换,变换后的点和变换前的点存在用变换前的点通过线性方程便是出来,都可以写成矩阵的形式,这种变换叫做线性变换

齐次坐标

引入原因:
上面说了ax + by 的方式都可以写成矩阵的形式,但是平移的操作的公式如下,不能写成矩阵的形式。
在这里插入图片描述
只能写成如下:
在这里插入图片描述
为了同意变换,让他们都写成一个矩阵和一个向量相乘的形式。我们引入了齐次坐标。

在其次坐标中:

已二维举例:
点会写成 (x,y,1)
向量会写成(x,y,0)

如下图引入后,平移矩阵可以写成如下形式:
在这里插入图片描述

至于引入后对于所有的仿射变化都可以根据引入的齐次坐标写成一个矩阵和一个向量相乘的形式

在齐次坐标的表示下各种变换矩阵就可以写成如下方式:
在这里插入图片描述

注意:

矩阵乘逆矩阵一定等于单位矩阵矩阵是从右向左计算的

三维空间中:

三维空间中齐次坐标表示:
在这里插入图片描述

三维空间的仿射变换矩阵通常写成如下格式:
在这里插入图片描述

三维缩放矩阵:

在这里插入图片描述

三维平移矩阵:

在这里插入图片描述

三维旋转矩阵:

在这里插入图片描述

注意:三维旋转都可以拆分为,绕X轴旋转,绕Y轴旋转和绕Z轴旋转,所以我们写出了这三种旋转变换矩阵

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

Linux vi/vim以及三种模式常用快捷键

vi/vim vi和vimvi 命令模式vi 插入模式vi 底行模式 vi和vim vi 和 vim 都是在 Linux 系统中的文本编辑器。vim 实际上是 vi 的增强版&#xff0c;提供了更多的功能和改进。 vi&#xff1a; vi 是一个经典的文本编辑器&#xff0c;几乎在每个 Linux 发行版中都预装了。vi 的使用…

adb shell使用总结

文章目录 日志记录系统概览adb 使用方式 adb命令日志过滤按照告警等级进行过滤按照tag进行过滤根据告警等级和tag进行联合过滤屏蔽系统和其他App干扰&#xff0c;仅仅关注App自身日志 查看“当前页面”Activity文件传输截屏和录屏安装、卸载App启动activity其他 日志记录系统概…

java - 代码块

代码块 基本介绍 代码块又称为初始化块&#xff0c;属于类中的成员&#xff0c;即类的一部分&#xff0c;和方法类似。将逻辑语句封装在方法体中&#xff0c;通过{}包围起来。 但和方法不同&#xff0c;没有方法名、没有返回、没有参数。只有方法体&#xff0c;而且不用通过…

Sestra 实用教程(三)输入与输出

目 录 一、前言二、分析流程三、输入文件3.1 模型与荷载3.2 分析控制数据 四、输出文件五、参考文献 一、前言 SESAM &#xff08;Super Element Structure Analysis Module&#xff09;是由挪威船级社&#xff08;DNV-GL&#xff09;开发的一款有限元分析&#xff08;FEA&…

C语言---判断当前计算机大小端问题

C语言—判断当前计算机大小端问题 文章目录 C语言---判断当前计算机大小端问题一、方法一二、方法二&#xff1a;使用联合体三、方法二的理解 一、方法一 代码如下 #include<stdio.h> //判断当前机器的大小端问题 int main() {int a 1;//0x 00 00 00 01//低----------…

Spring JPA 实现动态SQL查询及分页

1.在持久层Service中创建EntityManager对象&#xff1b;PersistenceContext private EntityManager entityManager; 2.根据动态sql查询条目数/*** get total.*/ public Object getResultTotalBySql(String sql) {Query query entityManager.createNativeQuery(sql);return que…

Typescript第四章 函数(声明和调用,注解参数类型,多态,类型别名,泛型)

第四章 函数 ts中声明和调用函数的不同方式签名重载多态函数多态类型声明 4.1 声明和调用函数 在js中函数是一等对象&#xff0c;我们可以像对象那样使用函数&#xff0c;可以复制给变量&#xff0c;可以作为参数传递&#xff0c;返回值&#xff0c;赋值给对象的原型&#x…

九五从零开始的运维之路(其二十七)

文章目录 前言一、SQL语句类型1.DDL2.DML3.DCL4.DQL 二、数据库操作1.查看数据库2.创建数据库3.进入数据库4.删除数据库5.更改数据库 三、数据表操作1.数据类型&#xff08;一&#xff09;数值类型&#xff08;二&#xff09;时间\日期类型&#xff08;三&#xff09;字符串类型…
推荐文章