图形学 Lecture 2 Transformation(变换)
目录
二维变换
线性变换
缩放变换
反射变换
切变
旋转变换
总结:线性变换
齐次坐标
平移变换
仿射变换
逆变换
变换的组合
变换的分解
补充
三维空间的变换
齐次坐标(三维)
三维变换
缩放
平移
旋转
任意旋转
观测变换
视图变换
投影变换
正交投影
透视投影
主要内容:
- 二维空间的变换:旋转 缩放 切变
- 齐次坐标的概念
- 把不同变换组合到一起,形成新的变换
- 三维空间中的变换
- 观测变换:视图变换 投影变换
二维变换
线性变换
缩放变换
反射变换
切变
旋转变换
旋转(默认:绕原点 且 逆时针方向旋转)
总结:线性变换
平移变换不是线性变换
若能写成如下的形式,则为线性变换,上述的几种变换,都是线性变换:
齐次坐标
引进齐次坐标:平移变换的特殊性
平移变换
--- 不是一个线性变换
引入齐次坐标
点和向量在齐次坐标中的表示:
(x,y,w)表示的所有二维点 都是(x/w,y/w,1)
仿射变换
此形式的变换都为仿射变换(即线性变换和平移变换合在一起)
所有的放射变换都可以写成齐次坐标的形式:
逆变换
变换回去的方法是乘以逆矩阵
逆矩阵*原矩阵=单位矩阵
变换的组合
先旋转后平移(从右到左应用)
A1...An 都是3x3的矩阵,既可以从右向左应用 也可以把An到A1先进行乘积,合成一个3x3矩阵。
变换的分解
问题:如何沿着任意一个点A旋转?
答:进行变换的分解,即先平移到原点,在绕原点旋转,再平移回去。
补充
在旋转变换中,根据上述推导可得旋转矩阵的逆矩阵==转置矩阵。
(用途:在求旋转矩阵的逆矩阵时,只需求正向旋转矩阵,然后求转置即可)
在数学上,若矩阵的逆矩阵==转置矩阵,则该矩阵是正交矩阵。
三维空间的变换
齐次坐标(三维)
先线性变换再平移
左上角的3x3矩阵代表线性变换 最后一行是固定的0001 右边的3x1矩阵代表平移量
三维变换
缩放
平移
旋转
分别绕 x y z旋转
x x y=z
x x z=-y 所以旋转矩阵会有不同
y x z=x
任意旋转
绕轴n旋转任意角度a 先平移到坐标轴 -> 然后旋转 -> 然后平移回去
罗德里格旋转公式:
观测变换
- 视图变换(相机变换)
- 投影变换 --正交投影 透视投影
MVP变换:Model View Projection
视图变换
约定:相机在原点(0,0,0)往-z方向看,且向上方向是y。
如何变换? 先将点移到原点 然后将g旋转到-Z方向 然后将t旋转到Y方向 g x t旋转到X
- 先平移
- 后旋转
由 g t gxt旋转到 -Z Y X有些困难 所以考虑逆变换 即由X Y Z 旋转到。。。
旋转矩阵是正交矩阵 旋转矩阵的逆为转置。
所以综上
- 小总结
模型变换:变换物体的位置。
视口变换:摄像机进行变换,周围物体跟着变换。
所以 模型变换和视口变换都应用在了物体上,所以经常统称为模型-视图变换。
投影变换
正交投影 透视投影
正交投影不会有近大远小的现象。
透视投影会有近大远小现象。
正交投影
方法:
- 将z轴坐标忽略不计,将图像放到xy平面上。
- 将图像放到-1到1的矩形上。
更规范的方法:
- 先把长方体的中心移到原点。(平移)
- 把xyz的轴都拉成-1到1。(缩放)
(看的时候沿着-z方向 所以在z轴方向上,近大于远。)
透视投影
方法:
- 将左边的形体挤压成长方体。
- 按照正交投影方式进行投影。
挤压过程中 近平面和远平面的z值不变。
挤压矩阵推导过程:
1. 根据相似三角形
2. 根据近平面上所有点的坐标不变。
3. 远平面中心点坐标不变。
结果
问题:
对于老师在最后留下的问题,z坐标在n ,f之间的点在挤压过程中会怎么变。
图形学 Lecture 2 Transformation(变换)相关推荐
- [Games101] Lecture 03-04 Transformation
Transformation 2D 线性变换 线性变换:变换能够用矩阵乘法得到 可以说,Linear Transformation = Matrices (of the same dimension) ...
- 计算机图形学基础1——MVP变换
参考链接: 线性变换 计算机图形学入门教程 视图变换 图形学随笔:MVP变换-视图变换 计算机图形学笔记-专栏 View/Camera Transformation视图变换 MVP变换: 我们知道我们 ...
- 计算机图形学笔记(观测变换、模型变换、视图变换、投影变换、视口变换)
计算机图形学笔记(观测变换.模型变换.视图变换.投影变换.视口变换) 目录 计算机图形学笔记(观测变换.模型变换.视图变换.投影变换.视口变换) 一.简介 1.模型变换(Model transform ...
- OpenGL transformation变换的实例
OpenGL transformation变换的实例 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <glad/glad.h> #i ...
- Games101现代图形学入门Lecture 4: Transformation Cont知识点总结
视频链接:https://www.bilibili.com/video/BV1X7411F744?p=4 课程主页链接:http://games-cn.org/intro-graphics/ 课件PP ...
- Games101现代图形学入门Lecture 3: Transformation知识点总结
视频链接:https://www.bilibili.com/video/BV1X7411F744?p=3 课程主页链接:http://games-cn.org/intro-graphics/ 课件PP ...
- 计算机图形学基础知识-三维变换
原文: http://blog.sina.com.cn/s/blog_557d254601017gvz.html 变换是 计算机图形学中重要概念,包括最基本的三维变换,即 几何变换. 投影变换. 裁剪 ...
- 理解计算机3D图形学中的坐标系变换
要谈坐标系变换,那么坐标系有哪些呢?依次有:物体坐标系,世界坐标系,相机坐标系,投影坐标系以及屏幕坐标系.我要讨论的就是这些坐标系间的转换. 这些坐标系不是凭空而来,他们都是为了完成计算机3 ...
- 图形学笔记(四) 数学变换
数学变换 点和坐标 什么是点? 注意区分图形学中的点与图论中的点:图论中的点重视点与点的拓扑结构,而不关心点的坐标,而图形学中的点没有严格限制拓扑结构,且及其关注点的坐标. 在几何学中,点是最简单的形 ...
最新文章
- python多进程_python语法:多进程
- tomcat java环境变量配置
- 关于 SAP WebIDE 不支持 ES6 语法的问题
- 程序员过关斩将-- 工作好多年可能还未真正了解接口和抽象类
- 参数化的JUnit测试
- 祖孙俩人是什么关系_一个人生活也挺好,为什么还需要亲密关系?
- 小白视角来看传说中的卷积神经网络
- 华为达芬奇架构到底好在哪里?
- ASP.NET程序中常用的三十一种代码
- Android GsmCellLocation.getCellLocation返回NULL
- NSIS中文用户手册下载(免费下载)
- win10进不去计算机配置,Win10电脑系统设置打不开的解决方法
- gabor matlab pudn,matlab-Face-recognition 基于Gabor特征提取和人工智能的人脸检测系统 271万源代码下载- www.pudn.com...
- 各种激活函数求导公式
- Android developer 阅读笔记--应用资源概览
- 八、python爬虫伪装 [免费伪装ip伪装请求头]
- win用户计算机批量添加用户,win10系统巧用cmd命令快速创建新账户的技巧
- tc ebpf sample - tethering offload on linux pc
- matlab信息隐藏和提取,使用matlab进行图像信息隐藏和提取
- C++课程设计快递业务管理系统实验报告
热门文章
- Matlab RGB与HSV
- 网卡清空缓存命令_WIN10如何清除网络缓存图文教程
- NGINX+DNS配置代理服务器
- 全网最细最全OLAP之clickhouse笔记|clickhouse文档|clickhouse揭秘文档(一)--clickhouse简介
- 国行版 P30 价格公布,除了拍照逆天,这些功能也很强...
- Jsp学习笔记——第二天
- Excel如何将数据重复指定次数
- php 3d模型,3D模型如何使用?总结3D模型实例用法
- 香肠派对显示服务器断开怎么解决,《香肠派对》这些bug都会解决的 匹配自动取消如何快速解决...
- linux下的ftp登陆用户名和密码,Linux下实现ftp普通账号和vip账号限速