二维空间的变换 L3V1这一课主要讲了二维空间的变换,包括平移.错切和旋转. 缩放 缩放矩阵 使用矩阵的乘法来完成缩放 缩放矩阵是一个对角矩阵,对角线上的值对应缩放倍数 错切(shear) 错切可以将矩形变成平行四边形 一般来说,中心线不错切,也就是0错切 上部分错切a 下部分错切-a y坐标不变化,x坐标变换 假设y坐标为1 所以矩阵第二行为[0 1] 第一行为之前的x值加上a乘以y坐标的值 即[1 a]. 旋转变换(二维) 二维的旋转变换,先在X坐标进行变换再在Y方向变换 二维情况下可以调换…
一.齐次变换 1.平移变换 变换矩阵不能包含X,Y,Z等坐标变量 如果x坐标向右平移了5个单位长度,则x~=x+5.在变换矩阵中表示的时候添加一个w坐标变量.通过加入一个w坐标,可以实现平移变换 1>如果w>0,这表示一个真实物理世界的点,因为你可以用x,y,z三个坐标初一w得到这个真是的点. 2>如果w=0,表示一个无穷远处的点 3>在实际应用中,w等于0通常用来表示一个向量 齐次坐标的优点:只需在渲染管线的最后做一次 除法(除以w)就能将齐次坐标转换为非齐次. 一般的平移矩阵:…
一.观察:正交投影 1.特性:保持平行线在投影后仍然是平行的 2.一个长方体,对处在只有深度不同的位置上的同一物体来说,它的大小不会改变. 3.透视投影:平行线在远处会相交(例如铁轨) 4.glOrtho()函数:这个函数描述了一个平行修剪空间.这种投影意味着离观察者较远的对象看上去不会变小(与透视投影相反).在3D笛卡尔坐标中想象这个修剪空间,左边和右边是最小和最大的X值,上边和下边是最小和最大的Y值,近处和远处是最小和最大的Z值. 正射投影,又叫平行投影.这种投影的视景体是一个矩形的平行管道…
最容易填写的函数就是left.输入为旋转的角度,当前的eye与up这两个三维向量 void Transform::left(float degrees, vec3& eye, vec3& up) { // YOUR CODE FOR HW1 HERE } 1.Transform是一个类,在Transform.h中可查看,类中声名了四个方法 2.:: 类作用域符,用法(class::name)一种从属关系 class A {public: int test();} int A::test()…
罗德里格斯公式推导 图1(复制自wiki) 按照教程里,以图1为例子,设k为旋转轴,v为原始向量. v以k为旋转轴旋转,旋转角度为θ,旋转后的向量为vrot. 首先我们对v进行分解,分解成一个平行于k和垂直于K的向量,分别为v∥和v⊥. 则v∥=<k,v>k (因为这里设了k是单位向量,所以|k|=1) v⊥=v-v∥ 为了方便研究旋转后的向量,我们以k和v的叉乘w以及v∥和v⊥建立坐标系. w=kXv 设vrot的分量为v⊥',和v∥',显而易见的v∥'=v∥ 而v⊥'可以由v⊥和w来表示.…
组合变换 连接矩阵的优点是可以使用这些矩阵单独操作. 多个变换依然是一个矩阵. 连接矩阵不可交换,因为矩阵乘法不具有交换性. X3=RX2 X2=SX1 X3=R(SX1)=(RS)X1 X3≠SRX1 逆变换: 方法1 求相乘结果的逆矩阵 方法2 求每个变换的逆矩阵,同时交换位置 也就是最后一个变换必须最先解除 M=M1M2M3 M-1=,M3-1M2-1M1-1 三维旋转 回顾二维矩阵 旋转矩阵是正交的 即R^TR=E 三维空间 二维旋转可以看成围绕Z轴的特殊旋转,因为Z轴保持不变 因此矩阵…
1.框架下载 在网站上下载了VS2012版本的作业0的框架,由于我的电脑上的VS是2017版的,根据提示安装好C++的版本,并框架的解决方案 重定解决方案目标为2017版本. 点击运行,可以出来界面. 根据提示测试各个按钮功能,均没有问题,框架测试完毕. 2.修改颜色 先上原始的图: 作业要求我们修改壶的光照颜色,而且告诉了我们在哪一行代码要改哪个数值了,所以很简单. 按照提示打开mytest3.cpp文件,在124行把light_specular数组的第二个元素修改为1,保存重新运行,即可得到…
第一单元(介绍关于变换的数学知识) :基本二维变换 模型坐标系,世界坐标系 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的值加上…
本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记.所有内容均来自MIT公开课Introduction to Algorithms中Charles E. Leiserson和Erik Demaine老师的讲解.(http://v.163.com/special/opencourse/algorithms.html) 第四节-------快速排序 Quicksort 这节课的主要内容分为两部分,一部分是介绍快速排序算法,分析其在最好.最坏以及最好最差…
计算机图形学 opengl版本 第三版------胡事民 第四章  图形学中的向量工具 一   基础 1:向量分析和变换   两个工具  可以设计出各种几何对象 点和向量基于坐标系定义 拇指指向z轴正方向    从x轴的正向握向y轴的正向,  可以分为左手和右手坐标系. 点A到点B的位移称为向量v       则v=B-A     尾-头 一个n维向量是一个n元组      w=(w1,w2,w3,...) 用矩阵来表示向量  更加方便清晰 2:向量的基本运算法则 向量a b      标量s…