图形学 |
您所在的位置:网站首页 › 旋转图形的三个要素分别是哪些 › 图形学 |
1.变换
1.1 什么是变换?
变换(Transform)是计算机图形学中非常重要的一部分。变换包含模型变换(Modeling transform)以及视图变换(View transform)。模型变换指的是变换模型(被拍摄物体)的位置,大小和角度;视图变换指的是变换照相机的位置和角度。从相对运动的角度来看,两种变换是可以相互转化的。 1.2 模型变换 1.2.1 二维变换 缩放变换缩放变换(Scale)中,如果一个图片以原点 (0, 0) 为中心缩放 𝑠 倍。那么点 (𝑥, 𝑦 ) 变换后数学形式可以表示为 反射变换(Reflection)指的是图片对着 x 轴或者 y 轴做对称变换。对于图片上的点 (𝑥, 𝑦 ) 在经过 x 轴 的对称反射变换后,数学形式可以表示为: 切变变换(Shear),指的是在物理学上指的是两个距离很近、大小相等、方向相反的平行力作用于同一物体上所引起的形变。使用示意图可以更直观的去表示什么是切变。如图2.2所示,是图片在 x 轴方向上发生了切变。从图中我们可以看出所有点在 y 轴上的坐标不变,在 x 轴上的坐标满足:𝑦 = 0 上的点,x 轴坐标不发生变化;𝑦 = 1 上的点水平方向上移动了 𝑎 个长度。因此对于任意一个点来说,水平方向上移动长度为𝑎𝑦。 我们默认旋转变换(Rotate)都绕着原点 (0, 0) 旋转,并且默认旋转方向为逆时针方向(逆时针方向旋 转角度值为正,顺时针旋转角度值为负)。旋转变换的推导过程比较复杂(见后续推导过程)。结论如下:当一个点 (𝑥, 𝑦 ) 绕着原单 (0, 0) 旋转 𝜃 角时,变换矩阵可以表示为: 对于任何一种变换如果可以写作: 平移变换(Translation)相比于以上的线性变换有特殊的地方。平移变换的数学形式为: 为了统一变换操作,我们引入一个新的维度。对于二维的点 (𝑥, 𝑦 ) 我们可以增加一个维度,对于 2 维的 点可以表示为 (𝑥, 𝑦, 1)𝑇,2 维向量的 (𝑥, 𝑦, 0)𝑇。因此,一个点的平移可以用矩阵表示为:
对于向量来说,平移变换不应该使向量的结果发生变化。因此补充维度为 0 的时候可以屏蔽 平移带来的影响。 对于加入齐次坐标的点和向量满足: 向量 + 向量 = 向量点-点 = 向量. 点 + 向量 = 点点 + 点 = 两个点中点 对引入齐次坐标的点的扩充定义如下:![]() 因此一个点加上另一个点的结果是两个点的中点。引入了扩充定义点和向量的加法是有意义的。 仿射变换仿射变换(Affine)包含线性变换与平移变换。可以用矩阵表示为: 任何变换的逆变换(Inverse transform)的变换矩阵 𝑀 的逆矩阵 𝑀−1 表示。 变换的组合与分解变换的组合 可以用矩阵的乘法进行变换的组合(Transform compose)。变换的先后顺序不同,变换的结果不同。矩 阵和向量的乘法是从右到左依次相乘,从右到左依次应用变化。如果我们要依次应用变化 𝐴1, 𝐴2, 𝐴3, ⋯,写成矩阵形式:
变换的分解 所有的复杂变换都可以分解成多个普通的变换。为了使某个图像沿着某个点 𝑐 变换,我们可以分解为 以下步骤: 把中心点 𝑐 移动到原点进行旋转;把中心点(0,0)移动到原来的中心点用变换矩阵表示为: 3 维变换可以类比于 2 维变换得到引入齐次坐标的点和向量,3 维的点可以表示为 (𝑥, 𝑦, 𝑧, 1)𝑇,3 维向量可以表示为 (𝑥, 𝑦, 𝑧, 0)𝑇。当 𝑤 ≠ 0 的时候:(𝑥, 𝑦, 𝑧, 𝑤 ) = (𝑥/𝑤, 𝑦/𝑤, 𝑧/𝑤, 1) 使用 4 × 4 的矩阵来表示仿射变换: 3 维变换中缩放变换的变换矩阵: 三维变换中平移变换的变换矩阵: 当空间内的物体绕着 x 轴,y 轴或者 z 轴旋转的时候,变换矩阵为:
![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |