计算机图形学一:数学基础

news2024/11/27 4:19:40

数学基础(变换矩阵,向量运算等)

1.变换矩阵总结

一切物体(包括模型,向量等)的缩放,旋转,平移,切变等,都可以通过变换矩阵得到。在投影(projection)变换时也有很多应用。
本节简单的介绍一下变换矩阵

1.1 旋转

旋转在几何和线性代数中是描述刚体围绕一个固定点的运动的在平面或空间中的变换

我们这里只讨论“坐标系保持不动,向量绕坐标轴旋转”的观点。
因为当旋转与平移进行结合时,会因为先后顺序发生不同的情况
(先平移后旋转,物体的位置会因旋转而发生变换,原因是在平移后坐标空间发生的变化,因此再使用旋转矩阵进行变换是相对于世界空间原点进行变换的)
在这里插入图片描述

(先旋转后平移,物体的位置不会因为旋转而发生变化,原因是在平移前,已经做了旋转变换,因此旋转时物体本身坐标空间还在世界中心。)
在这里插入图片描述
回到正题
在这里插入图片描述
在这里插入图片描述
由于涉及到角度,所以可以把笛卡尔坐标系转换到极坐标系,设r为极半径,则P点坐标为
在这里插入图片描述
相应的,P’点坐标为
在这里插入图片描述
根据三角函数公式,联立两个方,可知,P’关于x,y的方程为:
在这里插入图片描述
用4x4矩阵可以表述为:
在这里插入图片描述
即,绕Z轴旋转的变换矩阵为:
在这里插入图片描述
同理可得下面几个常见的旋转变换矩阵:
在这里插入图片描述
其中逆时针是正方向,当顺时针旋转时,角度可以取负的正方向,之后根绝三角函数的奇偶性即可进行转换(意思是只要记住逆时针旋转的公式就行了)

1.2缩放

缩放在欧式空间中是描述延一个或多个坐标轴方向的缩放因子放大或者缩小物体的线性变化

每一个坐标轴方向都有其单独的缩放因子。
各坐标轴缩放因子不同,缩放后结果的形状可能发生变化,此时的缩放被叫做方向缩放。
在这里插入图片描述
如图,我们已知P点坐标,则P’点的坐标可以表示为:
在这里插入图片描述
用4x4矩阵表示为:
在这里插入图片描述
所以,三维缩放变换矩阵为:[外链图片转存失败,源站可能有防盗在这里插入链机制,建描述]议将图片上https://传(imbg.csdnimg.cn/9c92cd97df154zPXT1688c7a164b2a4f00f.pg08)(https://img-log.csdnimg.cn/9c92cd97df1541688c7a164b2a4f800f.png)]

1.3平移

平移在仿射空间中指物体延同一方向移动相同距离的变换

平移是一种等距同构的变换,可以被视为某一向量施加于物体没一点的结果。即,设v是已知向量,P为空间中一点,则平移:
在这里插入图片描述
如下图所示:
在这里插入图片描述

用4x4矩阵表示为
在这里插入图片描述
即平移变换矩阵为:
在这里插入图片描述

1.4 投影

投影是指一个从向量空间V映射到它自身的线性变换。

投影是生活中“平行投影”概念的形式化和一般化。例如,在现实生活中,阳光照射物体在地面留下的影子。我们假设阳光是沿着同一方向(平行且垂直于地面的)照射物体,地面是严格的平面。那么,这就是投影最直观的例子。

1.5总结

适用于列向量的4x4矩阵形式
在这里插入图片描述
这里的x,y,z与平移相关,分别是x,y,z轴的平移量。
a,b,c,d,e,f,g,h,i与线性变换相关。
l,m,n与透视投影变换相关。

为什么仿射变换要升维度?

线性变换在几何直观上有如下特点:

变换前后,直线仍然保持是直线的状态

变换前后,原点保持固定,不会变化

是因为我们无法通过矩阵的实现平移操作,平移会改变向量空间。

仿射变换,又称仿射映射,是指在几何中,对一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。

仿射变换相比于线性变换,不需要保证变换前后坐标原点不变。

我们希望能通过矩阵的乘法实现一个通用的计算模式,来进行坐标点的变化。
因此就需要齐次坐标:齐次坐标的本质就是升维来解决问题。

通过增加一个维度,可以在高维度上,通过线性变换来处理低维度的仿射变换。

在这里插入图片描述

2.向量点乘,叉乘的定义及几何意义

2.1 向量点乘

点乘的数学定义:在这里插入图片描述
点乘的几何意义:两个单位向量之间夹角的余弦值。在这里插入图片描述

2.2 向量叉乘

参考:https://www.jianshu.com/p/ccdee786acbd
http://www.360doc.com/content/19/1222/18/40070800_881412732.shtml
https://juejin.cn/post/6886474840111317005
https://www.jianshu.com/p/c3e887c4c4f4

3.欧拉角与四元数与万向节死锁

欧拉角:

pitch俯仰角:点头,x轴为旋转轴。
yaw偏航角:左右摇头,y轴为旋转轴
roll滚动角:向日葵(招手)式的摇头,z轴为旋转轴。
在这里插入图片描述
在这里插入图片描述
经典面试题:欧拉角定义的旋转矩有什么问题,怎么处理?
欧拉角定义了绕着三个坐标轴的旋转角,来确定刚体的旋转位置的方式,包括俯仰角pitch,偏航角yaw和滚动角roll;
它的优点是比较直观,而且单个维度上的角度上比较容易插值;
缺点是它不能进行任意方向的插值,而且会导致万向节死锁的问题,旋转的次序也会对结果产生影响,也就是在旋转过程中会损失自由度。
我们依次绕坐标系x,y,z轴旋转,当绕y轴旋转90度后,z轴就指向了原来的x轴,这样一来。事实上只绕了x和y两个轴旋转,第三个轴的自由度缺失了。

四元数:

我们使用四元数一般就是简单的用来进行三维旋转,记住下面的几个公式:
首先,定义一个需要做的旋转。旋转轴为向量v = (vx,vy,vz),旋转角度为θ(右手法则的旋转)。
在这里插入图片描述
在这里插入图片描述
那么与此相对应的四元数(下三行式子都是一个意思,只是不同的表达形式)。
注意角度都是θ/2。
在这里插入图片描述
这是它的共轭(下三行式子都是一个意思,只是不同的表达形式)。
在这里插入图片描述

如果你想算一个点w = (wx,wy,wz)在这个旋转下新的坐标W’,需要进行如下操作。

    1. 定义纯四元数
      qw = (θ,wx,wy,wz) = θ+wxi+wyj+wz*k
    1. 进行四元数运算
      qw’ = q x qw x q-1
    1. 产生的qw’一定是纯四元数,也就是说它的第一项为θ,有如下形式:
      qw’ = (θ,wx’,wy’,wz’) = θ + wx’*i+wy’*j+wz’*k
    1. qw’中的后三项(wx’,wy’,wz’)就是w’:
      w’ = (wx’,wy’,wz’)

这样一来,就完成了一次四元数旋转运算。

同理,如果你有一个四元数:
q = (q1,q2,q3,q4) =在这里插入图片描述
那么,它对应一个以向量v = (vx,vy,vz)为轴旋转θ角度的旋转操作(右手法则的旋转)。

其他小记:

其实还有一些比较重要的数学上的知识,比如说MVP矩阵的推导,尤其是
VP矩阵的推导
三角形插值,透视插值矫正,光线追踪求交等。
都略知一二,但是都不是很深入,有待整理提高。
慢慢的往上加,但是一般在后面的章节里都有记载。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【云原生】kubernetes在Pod中init容器的作用和使用

目录 Pod 中 init 容器 1 init 容器特点 2 使用 init 容器 Pod 中 init 容器 Init 容器是一种特殊容器,在Pod 内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。 1 init 容器特点 init 容器与普通的容器非常像&#xf…

Vue2 第二十节 vue-router(三)

1.路由跳转的replace方法 2.编程式路由导航 3.缓存路由组件 4.两个新的生命周期钩子 一.路由跳转的replace方法 1.作用:控制路由跳转时操作浏览器历史记录的模式 2.浏览器的历史记录模式有两种写入方式,分别为push和replace,push是追加历史记录&am…

监控Redis的关键指标

Redis 也是一个对外服务,所以 Google 的四个黄金指标同样适用于 Redis。 1、延迟 在软件工程架构中,之所以选择 Redis 作为技术堆栈的一员,大概率是想要得到更快的响应速度和更高的吞吐量,所以延迟数据对使用 Redis 的应用程序至…

适合自己企业的erp系统怎么选?这8条关键因素缺一不可!

一文看懂:如何选择适合自己企业的ERP系统?选型过程中有哪些关键因素需要考虑? 无论你是多大规模的企业,看懂这一篇,你都能受用无穷。 哪怕你需求复杂,现成ERP系统无法满足,最后我也给出了一条…

数据库报错1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES)解决方式

文章目录 前言一、原因:1.数据库密码被篡改了!2.数据库权限变更了! 二、解决方法1.方法:编辑mysql配置文件my.ini2.步骤如下: 三、总结:mysql8.0版本下命令行mysqld -skip-grant-tables 失效 无法登陆问题的…

LeetCode150道面试经典题-删除有序数组中的重复项(简单)

1.题目 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &#xff0c…

AI 绘画Stable Diffusion 研究(六)sd提示词插件

大家好,我是风雨无阻。 今天为大家推荐一款可以有效提升我们使用 Stable Diffusion WebUI 效率的插件, 它就是 prompt-all-in-one, 它不但能直接将 WebUI 中的中文提示词转换为英文,还能一键为关键词加权重,更能建立常…

web系统测试思路

一、输入框 1、字符型输入框: (1)字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符“~!#¥%……&*?[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时,…

Python高阶技巧 多线程

进程、线程和并行执行 进程、线程 现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。 进程: 就是一个程序,运行在系统之上,那么便称之这个程序为一个运行进程&…

Java课题笔记~ AspectJ 对 AOP 的实现(掌握)

AspectJ 对 AOP 的实现(掌握) 对于 AOP 这种编程思想,很多框架都进行了实现。Spring 就是其中之一,可以完成面向切面编程。然而,AspectJ 也实现了 AOP 的功能,且其实现方式更为简捷,使用更为方便,而且还支…

【0807作业】使用消息队列实现AB进程对话+使用共享内存实现A进程打印字符串,B进程逆置字符串,打印结果为【正序 逆序 正序 逆序】

作业一:使用消息队列实现AB进程对话 ① 打开两个终端,要求实现AB进程对话 A进程先发送一句话给B进程,B进程接收后打印B进程再回复一句话给A进程,A进程接收后打印重复1.2步骤,当收到quit后,要结束AB进程 ② …

HCIA---OSI/RM--开放式系统互联参考模型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 一.OSI--开放式系统互联参考模型简介 1.OSI七层参考模型: HTTP请求工作过程: 二.OSI参考模型详解 链路层: 网络层&#…

【Java+springboot】基于物联网技术的粮油质量管控防伪溯源管理系统源码

基于物联网技术、RFID技术和RSA、PGP加密算法开发的粮油质量管控防伪追溯系统 一、概述 粮油安全关系千千万万消费者的健康问题。近年来,许多食品行业安全事故频频涌现,成为社会关注焦点。粮油生产加工质量管控防伪溯源系统为粮油提供从种植、生产、加工…

Godot 4 源码分析 - 文件读入编码处理

今天需要读入xml文件进行处理,结果读入一个带中文的文件时,出错了。当然程序还能运行,但编译器一直报错,而且XML解析也不正确 单步调试发现读入的内容出现乱码,具体逻辑: String FileAccess::get_as_text…

CAPL - XML和TestModule结合实现测试项可选

目录 目的:是否想实现如下面的功能呢? 一、.can和.cin文件中函数开发

Git工具安装

Git 工具安装 1. 下载Git安装包2. 安装Git工具3. 简单的使用配置用户名 1. 下载Git安装包 打开官网 https://git-scm.com/downloads点击下载 2. 安装Git工具 右击以管理员身份运行 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9a99a73d54824800bc87db64f71f7602.png…

Selenium自动化测试总结

一、Selenium自动化测试(基于python) 1、Selenium简介: 1.1 Selenium是一款主要用于Web应用程序自动化测试的工具集合。Selenium测试直接运行在浏览器中,本质是通过驱动浏览器,模拟浏览器的操作,比如跳转、…

6.4.3 1x1卷积层

特点:1x1卷积层相当于全连接层 作用:1x1卷积用于调整网络层的通道数量和控制模型复杂度 输入形状:(通道,行,列) (3,3,3) 卷积核形状:(输出通道,输入通道,行,列) (2,3,…

SAP ABAP程序性能优化-养成良好的代码习惯

ABAP程序基本上都需要从数据库里面抓数,所以性能很重要,同时有一些基本的,和优秀的写法是我们必须要掌握的,不然就会造成程序性能很差。下面给予总结(这里包括有很基本的,也包括有比较少用到的)…