`

几何变换详解(3D点与矩阵)

 
阅读更多

在三维图形学中,几何变换大致分为三种,平移变换(Translation),缩放变换(Scaling),旋转变换(Rotation)。以下讨论皆针对DirectX,所以使用左手坐标系。

平移变换

将三维空间中的一个点[x, y, z, 1]移动到另外一个点[x', y', z', 1],三个坐标轴的移动分量分别为dx=Tx, dy=Ty, dz=Tz, 即

x' = x + Tx

y' = y + Ty

z' = z + Tz

平移变换的矩阵如下。

缩放变换

将模型放大或者缩小,本质也是对模型上每个顶点进行放大和缩小(顶点坐标值变大或变小),假设变换前的点是[x, y, z, 1],变换后的点是[x', y', z', 1],那么

x' = x * Sx

y' = y * Sy

z' = z * Sz

缩放变换的矩阵如下。

旋转变换

这是三种变换中最复杂的变换,这里只讨论最简单的情况,绕坐标轴旋转,关于绕任意轴旋转,在后续的随笔中介绍。

绕X轴旋转

绕X轴旋转时,顶点的x坐标不发生变化,y坐标和z坐标绕X轴旋转θ度,旋转的正方向为顺时针方向(沿着旋转轴负方向向原点看)。[x, y, z, 1]表示变换前的点,[x', y', z', 1]表示变换后的点。变换矩阵如下。

关于旋转的正方向,OpenGL与多数图形学书籍规定旋转正方向为逆时针方向(沿着坐标轴负方向向原点看),比如Computer Graphics C Version,p409。

绕Y轴旋转

绕Y轴旋转时,顶点的y坐标不发生变化,x坐标和z坐标绕Y轴旋转θ度。[x, y, z, 1]表示变换前的点,[x', y', z', 1]表示变换后的点。变换矩阵如下。

绕Z轴旋转

绕Z轴旋转时,顶点的z坐标不发生变化,x坐标和y坐标绕Z轴旋转θ度。[x, y, z, 1]表示变换前的点,[x', y', z', 1]表示变换后的点。变换矩阵如下。

绕坐标轴旋转的矩阵推导

上面三个旋转矩阵是如何得来的呢?我们推导一下,首先看一下二维的情况,再扩展到三维即可。实际上上面三种绕坐标轴旋转的情况属于特殊的二维旋转,比如绕Z轴旋转,相当于在与XOY平面上绕原点做二维旋转。

假设点P(x, y)是平面直角坐标系内一点,其到原点的距离为r,其与X轴的夹角为A,现将点P绕原点旋转θ度,得到点P'(x', y'),P'与X轴的夹角为B,则A = B - θ。(注意,在二维坐标中,逆时针旋转时角度为正,顺时针旋转时角度为负,下图中由P旋转到P',角度为θ,若是由P'转到P,则角度为-θ)。

 

于是可得下面的转换方程

(式一)

写成矩阵的形式就是

求得旋转矩阵为

由于这里使用齐次坐标,所以还需加上一维,最终变成

和前面给出的绕Z轴旋转矩阵完全吻合。

对于绕X轴旋转的情况,我们只需将式一中的x用y替换,y用z替换,z用x替换即可。替换后得到

(式二)

对应的旋转矩阵为

对于绕Y轴旋转的情况,只需对式二做一次同样的替换即可,的到的变换方程为

对应的变换矩阵为

== Happy Coding ==

分享到:
评论

相关推荐

    几何图形变换实验_计算机专业_OpenGL实验_Exp

    - **理论部分**:复习并理解二维和三维几何变换的基本概念,如平移、缩放、旋转、对称和错切等变换的数学模型与矩阵表达式。 - **实践部分**:在VC++环境下,通过编程实现这些变换,对指定的图形进行操作,并观察和...

    数字图像的几何变换

    本节我们将深入探讨“数字图像的几何变换”,特别是图像的平移操作,并参考《数字图像数字详解》一书中的理论和实践。 首先,我们要理解数字图像的基本概念。数字图像是一种二维数组,通常称为像素矩阵,每个元素...

    详解OpenGL的坐标系、投影和几何变换

    在OpenGL中,先应用几何变换矩阵,然后进行投影,这样图形的投影坐标就会反映出之前设定的几何变换效果。 在编程时,OpenGL维护了两个变换栈,一个用于几何变换,另一个用于投影变换。这些栈允许开发者保存和恢复...

    进阶课程⑭ _ Apollo自动定位技术——三维几何变换和坐标系介绍.pdf

    本节主要介绍了三维几何变换和坐标系的基础知识,包括加速度计、欧拉角、旋转矩阵、四元数、坐标系等知识点。 一、三维几何变换 三维几何变换是指在一个坐标系下,把一个点旋转到另一个位置的几何变换。旋转可以...

    音视频资料-图像仿射变换原理3:仿射变换类型及变换矩阵详解.rar

    在图像处理领域,仿射变换是一种重要的几何变换技术,它能够保持图像的直线性和平行性,广泛应用于图像校正、图像拼接、视觉定位等多个方面。本资料详细阐述了图像仿射变换的原理,包括变换类型和变换矩阵,旨在帮助...

    36.OpenCV图像几何变换万字详解(平移缩放旋转、镜像仿射透视).pdf

    ### 图像几何变换概述 在图像处理领域,**图像几何变换**是一类非常重要的操作,它可以帮助我们调整图像的位置、大小、方向等,对于图像分析、校正和增强都有着不可替代的作用。根据变换的复杂程度,可以将其大致...

    12.图像几何变换之图像仿射变换、图像透视变换和图像校正.pdf

    ### 图像几何变换详解 #### 一、图像仿射变换 **定义与原理:** 图像仿射变换是一种基本的图像几何变换方式,它保持了图像中的平行性和直线性不变。在数学上,图像仿射变换可以理解为在一个二维平面内进行的一次...

    计算机图形学几何工具算法详解

    第二章是关于矩阵理论及其应用的基础知识,这对于理解计算机图形学中的几何变换至关重要。 ##### 2.1 导论 - **矩阵**:介绍矩阵的概念及其表示方法。 - **组炽**:虽然原文中的“组炽”不太清晰,但可以推测这里...

    MFC空间几何变换之图像平移、镜像、旋转、缩放详解.doc

    MFC空间几何变换之图像平移、镜像、旋转、缩放详解 本文档主要讲述MFC空间几何变换中的图像平移、镜像、旋转、缩放的原理和实现方法。 一、图像平移 图像平移是指在不改变图像内容的情况下,将图像像素点进行空间...

    计算机图形学几何工具算法详解- 带目录

    计算机图形学几何工具。 要学习计算机图形学,对几何相关的一些概念、工具、算法不了解是不行的。 本书对矩阵以及各种三角函数二维、三维变换都有详细的阐述,非常适合图形工作这

    几何变换 计算机图形学 实验报告

    - **变换矩阵**:用于表示几何变换的数学工具,通常是一个方阵,可以通过矩阵乘法来实现对点或向量的操作。 - **复合变换**:多个基本变换的组合,可以通过连续的矩阵乘法来实现。 ### 2. 实验内容详解 #### 2.1 ...

    数学高中数学矩阵与变换新人教A选修PPT学习教案.pptx

    以上内容详细介绍了高中数学中矩阵与变换的基本概念、性质、运算规则以及它们在几何变换中的应用,这些知识对于理解和应用线性代数至关重要。通过这些知识点的学习,学生能够掌握矩阵的基本操作,并能将其应用于解决...

    2012版高考数学 3-2-1精品系列 专题16 矩阵与变换、行列式

    1. **矩阵与变换**:矩阵在数学中的主要作用是描述和执行几何变换,例如恒等变换、伸压变换、反射变换、旋转变换、投影变换和切变变换。这些变换通过矩阵乘法来实现,矩阵乘法不满足交换律,但满足结合律。 2. **...

    2020届高三数学一轮复习 专题8 选考部分4-2矩阵与变换.doc

    1. **矩阵与几何变换**:在数学中,矩阵可以用来表示几何变换,如平移、旋转、缩放和反射等。题目中提到的变换`T`将向量`(x, y)`变换为`(y, -x)`,这种变换的特点是原点保持不动,而坐标轴关于原点旋转了90度后再...

    OpenCV-Python图像处理:透视变换概念、矩阵及实现案例详解.rar

    透视变换是一种几何变换,它能够模拟人眼观察物体时的透视效果。在二维图像上,这种变换通常表现为将四边形(通常是矩形)映射到另一个四边形。在实际应用中,例如在航拍图像中将倾斜的建筑物矫正为垂直,或者在地图...

    OpenGL透视变换详解

    `gluPerspective`函数用于创建一个对称的投影视图矩阵,该矩阵会与当前的模型视图矩阵相乘,以实现透视效果。它的四个参数分别代表不同的特性: 1. `fovy`(Field of View in Y):这是在yz平面内视野的角度,通常...

    2014年高考数学一轮复习 热点难点精讲精析 选修系列(第5部分:矩阵与变换)

    这个概念在解决实际问题时非常关键,例如在几何变换中,矩阵相等意味着变换前后保持了相同的性质。 2. **二阶矩阵与平面向量乘法**: 二阶矩阵与平面向量的乘法是线性变换的一种表示方式。在高考数学中,可能会...

    矩阵论参考_矩阵论第二版答案(徐仲版)_

    3. 二次型和对称矩阵:通过对称矩阵的研究,我们可以探讨二次形式的性质,例如正定性、负定性,这对优化问题和微分几何有重要应用。 4. 二次型的标准型:通过初等行变换,任何二次型都可以转化为规范形,便于分析其...

    矩阵论课后习题答案.rar

    行列式值的计算能判断矩阵是否可逆,也是研究矩阵几何性质的重要工具。 4. **特征值与特征向量**:每个方阵都有特征值和对应的特征向量,它们揭示了矩阵的固有性质。特征值分析在许多领域,如物理、控制理论和数据...

Global site tag (gtag.js) - Google Analytics