Games101学习笔记 - 变换矩阵基础

二维空间下的变换

缩放矩阵

缩放变换:

复制代码
假如一个点(X,Y)。x经过n倍缩放,y经过m倍缩放,得到的新点(X1,Y1);

那么新点和远点有如下关系,X1 = n*X,   Y1 =m*Y

写成矩阵就是如下形式

<1>均匀缩放

<2>不均匀缩放

关于Y轴对阵矩阵

关于切变矩阵

关于旋转矩阵

注意:上图是默认二维旋转的是以远点为圆转重心,并且逆时针旋转

旋转矩阵推导原理:

规律

复制代码
	对于任意的变换,变换后的点和变换前的点存在用变换前的点通过线性方程便是出来,

	都可以写成矩阵的形式,这种变换叫做线性变换

齐次坐标

引入原因:

上面说了ax + by 的方式都可以写成矩阵的形式,但是平移的操作的公式如下,不能写成矩阵的形式。

只能写成如下:

为了同意变换,让他们都写成一个矩阵和一个向量相乘的形式。我们引入了齐次坐标。

在其次坐标中:

已二维举例:

点会写成 (x,y,1)

向量会写成(x,y,0)

如下图引入后,平移矩阵可以写成如下形式:

至于引入后对于所有的仿射变化都可以根据引入的齐次坐标写成一个矩阵和一个向量相乘的形式

在齐次坐标的表示下各种变换矩阵就可以写成如下方式:

注意:

复制代码
矩阵乘逆矩阵一定等于单位矩阵

矩阵是从右向左计算的

三维空间中:

三维空间中齐次坐标表示:

三维空间的仿射变换矩阵通常写成如下格式:

三维缩放矩阵:

三维平移矩阵:

三维旋转矩阵:

注意:三维旋转都可以拆分为,绕X轴旋转,绕Y轴旋转和绕Z轴旋转,所以我们写出了这三种旋转变换矩阵

相关推荐
xixixi7777722 分钟前
从“视觉感知”到“逻辑结构”的转化,是计算机从“看到像素”到“理解含义”的认知飞跃
图像处理·图形渲染·逻辑结构·视觉感知
明洞日记10 小时前
【VTK手册019】 深入理解 vtkProperty:从几何表达到 PBR 物理渲染
c++·图像处理·算法·vtk·图形渲染
明洞日记2 天前
【VTK手册017】 深入详解 vtkImageMathematics:医学图像的基本算术运算
c++·图像处理·算法·vtk·图形渲染
BoBoZz192 天前
QuadraticHexahedronDemo 非线性单元的展示与窗口交互
python·vtk·图形渲染·图形处理
郝学胜-神的一滴2 天前
Horse3D游戏引擎研发笔记(十):在QtOpenGL环境下,视图矩阵与投影矩阵(摄像机)带你正式进入三维世界
c++·3d·unity·游戏引擎·godot·图形渲染·unreal engine
BoBoZz192 天前
TessellatedBoxSource 创建并渲染一个细分的、可移动的箱体模型
python·vtk·图形渲染·图形处理
海中有金3 天前
UE4 内存池浅谈[3]——3代内存池对比总观
ue4·图形渲染
郝学胜-神的一滴4 天前
OpenGL错误检查与封装:构建健壮的图形渲染系统
开发语言·c++·程序人生·软件工程·图形渲染
DBBH5 天前
Cesium源码分析之渲染3DTile的一点思考
图形渲染·webgl·cesium.js
BoBoZz196 天前
OrientedArrow 在两个随机生成的点之间绘制一根带箭头的线,以可视化一个向量
python·vtk·图形渲染·图形处理