第一单元(介绍关于变换的数学知识)

:基本二维变换

模型坐标系,世界坐标系

1.缩放

Scale(规模,比例)

Sx表示在x方向上放大的倍数,Sy表示在y方向上放大的倍数,因此X坐标乘以Sx,Y坐标乘以Sy

缩放的你操作就是用x坐标和Y坐标分别乘以Sx和Sy的倒数。因此,如果放大了2倍,则其逆操作就是放大1/2倍,就是Sx和Sy的倒数

缩放矩阵是一个对角矩阵,将坐标乘以对应的缩放系数即可。

2.错切

Y坐标不发生变化,因此矩阵的第二行仍然是[0  1],乘起来仍然是y

x的值等于之前的x的值加上a乘以y坐标的值,x`=x+ay

这里为什么乘以a,因为这里是假设单位长度1,错切的变化量依赖于y坐标的值

错切矩阵为,错切的逆矩阵就是把a变成-a,错切公式不变。

3.旋转

该矩阵使得x方向和y方向上的变换叠加,相当于先在x方向上旋转再在y方向上旋转

二维的旋转变换,先在x轴上或先在y轴上可以交换顺序,但是三维不可以

因为数学表示在电脑上书写比较麻烦,故在纸上写下再拍照上传,得出旋转之后坐标的矩阵表示

课后测试题:

错误原因:在百度的时候没有加度,所以造成了错误,不用像答案把θ进行变换。

:组合变换

矩阵变换顺序不可交换!

组合变换矩阵的逆矩阵:最后一个变换的需要最先逆

对于旋转矩阵来说, R(A+B)=R(A)R(B),所以R(θ)=R(1)R(2)...R(179)R(180)=R(1+2+...+180)=R(((1+180)*180)/2)=R(16290),需要将旋转角再模360 (因为旋转x 度等价于旋转 x+360度)。 因此, 这里的旋转角就是 16290 mod 360=90 度

:三维旋转

旋转矩阵是正交的,R的转置乘以R等于单位矩阵E

三维绕哪个轴旋转,那个轴的坐标不变,即可得出结论(跟二维推导过程一样)

1>绕Z轴

2>绕X轴

3>绕Y轴(注意这里的形式稍有不同!!)三个矩阵均正交,乘以对应的转置矩阵为单位矩阵

点乘和叉乘的区别:

1.

点乘是一个数,公式:a . b = |a| * |b| * cosθ 
点乘又叫向量的内积、数量积,是一个向量和它在另一个向量上的投影的长度的乘积;
点乘反映着两个向量的“相似度”,两个向量越“相似”,它们的点乘越大。

2.

a*b = |a| * |b| * sinθ ,结果是一个向量,遵循右手法则

旋转可以写成一般矩阵的形式,即某个矩阵M乘以b,下边是一般轴角表示的旋转公式,推导过程比较复杂

罗德里格斯旋转公式:(记住)???这里不大懂

反向旋转轴实际上将绕 a⃗ 的逆时针旋转改变为绕a⃗ 的顺时针旋转。因此,绕−a⃗ 的逆时针旋转和绕a⃗ 的顺时针旋转等效。

CS184.1X 计算机图形学导论(第三讲)的更多相关文章

  1. CS184.1X 计算机图形学导论(第五讲)

    一.观察:正交投影 1.特性:保持平行线在投影后仍然是平行的 2.一个长方体,对处在只有深度不同的位置上的同一物体来说,它的大小不会改变. 3.透视投影:平行线在远处会相交(例如铁轨) 4.glOrt ...

  2. CS184.1X 计算机图形学导论 罗德里格斯公式推导

    罗德里格斯公式推导 图1(复制自wiki) 按照教程里,以图1为例子,设k为旋转轴,v为原始向量. v以k为旋转轴旋转,旋转角度为θ,旋转后的向量为vrot. 首先我们对v进行分解,分解成一个平行于k ...

  3. CS184.1X 计算机图形学导论L3V2和L3V3(部分)

    组合变换 连接矩阵的优点是可以使用这些矩阵单独操作. 多个变换依然是一个矩阵. 连接矩阵不可交换,因为矩阵乘法不具有交换性. X3=RX2 X2=SX1 X3=R(SX1)=(RS)X1 X3≠SRX ...

  4. CS184.1X 计算机图形学导论 第3讲L3V1

    二维空间的变换 L3V1这一课主要讲了二维空间的变换,包括平移.错切和旋转. 缩放 缩放矩阵 使用矩阵的乘法来完成缩放 缩放矩阵是一个对角矩阵,对角线上的值对应缩放倍数 错切(shear) 错切可以将 ...

  5. CS184.1X 计算机图形学导论 作业0

    1.框架下载 在网站上下载了VS2012版本的作业0的框架,由于我的电脑上的VS是2017版的,根据提示安装好C++的版本,并框架的解决方案 重定解决方案目标为2017版本. 点击运行,可以出来界面. ...

  6. CS184.1X 计算机图形学导论 HomeWork1

    最容易填写的函数就是left.输入为旋转的角度,当前的eye与up这两个三维向量 void Transform::left(float degrees, vec3& eye, vec3& ...

  7. CS184.1X 计算机图形学导论(第四讲)

    一.齐次变换 1.平移变换 变换矩阵不能包含X,Y,Z等坐标变量 如果x坐标向右平移了5个单位长度,则x~=x+5.在变换矩阵中表示的时候添加一个w坐标变量.通过加入一个w坐标,可以实现平移变换 1& ...

  8. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  9. 计算机图形学 - 图形变换(opengl版)

    作业题目: 图形变换:实现一个图形绕任意直线旋转的程序. 要求:把一个三维图形绕任意一条直线旋转,需要有初始图形,和旋转后的图形,最好也可以实时控制旋转. 最少要做出绕z轴旋转. 原理:http:// ...

随机推荐

  1. JIRA之两大统计图讲解

    一.创建与解决的问题-状态统计图 配置方式 理解该统计图 横坐标 x:时间 纵坐标 y:issue数量 统计图示解读: A.随着时间的推移,创建的问题数(红线)减少,修复问题数(绿线)增加,标志着版本 ...

  2. Spring Boot Shiro

    Shiro 核心 API Subject:用户主体(每次请求都会创建Subject). principal:代表身份.可以是用户名.邮件.手机号码等等,用来标识一个登录主体的身份. credentia ...

  3. Dubbo学习-7-dubbo配置文件优先级

    Dubbo配置加载流程 根据驱动方式的不同(比如Spring或裸API编程)配置形式上肯定会有所差异,具体参考XML配置.Annotation配置.API配置三篇文档.除了外围驱动方式上的差异,Dub ...

  4. python 全栈开发,Day9(函数的初始,返回值,传参,三元运算)

    一.函数的初始 比如python没有len()方法,如果求字符串的长度 使用for循环 s = 'asdfadsf' count = 0 for i in s: count += 1 print(co ...

  5. 写php用什么编辑器

    编辑器是编程工作者强有力的工具,一款好的编辑器可以大大加快程序员的开发速度.那么,如何在众多编辑器中选出顺手的编辑器呢? 下面为大家推荐几款好评较多的编辑器: 1.NetBeans —— 免费,开源, ...

  6. jsp选择文件夹上传

    文件夹数据库处理逻辑 publicclass DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject(); ...

  7. CodeForces - 1183H Subsequences (hard version) (DP)

    题目:https://vjudge.net/contest/325352#problem/C 题意:输入n,m,给你一个长度为n的串,然后你有一个集合,集合里面都是你的子序列,集合里面不能重复,集合中 ...

  8. 使用代理IP、高匿IP、连接失败

    先百度一下,什么是代理IP 我们使用代理IP就是因为某些站点会屏蔽我们的IP,所以我们要动态的更换代理IP. 代理IP: 其中我们首先选择国内的IP,国外的一般都比较慢,其次不要选择如{新疆乌鲁木齐} ...

  9. PHP 调试 - Xdebug

    PHP 调试指南.pdf PHP 程序员的调试技术 根据要调试的对象的不同,采取的方法也不一样: 调试 web 应用:对于 web 应用,可以在浏览器中安装插件,或者在 IDE 中设置,下面的设置二选 ...

  10. 关于国内注册codepen。无法收到邮件问题的解决

    我刚刚使用的qq邮箱也无法收到.后来使用了@foxmail.com邮箱就可以了. 我记得以前注册国外的一些东西,使用qq邮箱也是无法收到. 你可以在qq邮箱里面注册一个英文邮箱.注册以后就是@foxm ...