计算机图形学笔记----矩阵

矩阵和标量的运算

,则

矩阵与矩阵相乘

的矩阵A,的矩阵B。两矩阵,结果为的矩阵,第一个矩阵的列数必须和第二个矩阵的行数相同,否则不能相乘

中的每个元素等于A的第i行所对应的矢量和B的第j列所对应的矢量进行矢量点乘的结果

注意:矩阵乘法不满足交换律

矩阵乘法满足结合律

Shader中常用矩阵

**1.方块矩阵(方阵)(square matrix):**行数和列数相等的矩阵。

2.对角矩阵: 如果一个方阵除了对角元素外的所有元素都为0,那么这个方阵为对角矩阵。

3.单位矩阵: 特殊的对角矩阵,用表示,例如的单位矩阵为

4.转置矩阵: 原矩阵,它的转置表示为,转置矩阵的运算为原矩阵的第行变成第列,第列变成第行。

,示例

转置矩阵常用性质

性质一:矩阵转置的转置等于原矩阵

性质二:矩阵串接的转置等于反向串接各个矩阵的转置

5.逆矩阵

给定一个矩阵,它的逆矩阵为,把相乘,结果为一个单位矩阵,即

矩阵有逆矩阵的前提为该矩阵为方阵且并非所有元素都为0。

逆矩阵的常用性质

性质一:逆矩阵的逆矩阵是原矩阵本身,即

性质二:单位矩阵的逆矩阵是它本身,即

性质三:转置矩阵的逆矩阵是逆矩阵的转置,即

性质四:矩阵串接相乘后的逆矩阵等于反向串接各个矩阵的逆矩阵,即

三维变换与投影

现实世界是三维的,要在二维屏幕上绘制出三维场景需要通过投影变换降低维数。

三维变换矩阵

三维变换引入齐次坐标,在四维空间内进行研究。

三维变换可表示为某一变换矩阵与物体顶点集合的齐次坐标矩阵相乘的形式,三维变换矩阵是的方阵。

例如:

的子矩阵,用于对物体进行比例、旋转、反射、错切变换。

的子矩阵,用于对物体进行平移变换。

子矩阵,用于对物体进行投影变换。

子矩阵,用于对物体进行整体比例变换。

三维变换形式

三维变换的基本方法是把矩阵作为算子,作用到变换前的物体顶点集合的齐次坐标矩阵上,得到变换后新的顶点集合的齐次坐标矩阵,连接新的物体顶点,可绘制出变换后的三维物体模型。

设变换前的物体顶点矩阵

变换后的物体顶点矩阵

则三维变换公式为,即

三维基本变换

三维基本变换是指将点从一个坐标位置变换到另一个坐标位置的过程,是相对于坐标系或坐标轴进行的几何变换。

平移变换

为平移参数

平移变换的坐标表示为

三维平移变换矩阵为

比例变换

为比例系数

比例变换的坐标表示为

三维比例变换矩阵为

旋转变换

三维旋转变换一般看作二维旋转变换的组合,可分为绕轴旋转、绕轴旋转、绕轴旋转,绕坐标轴旋转角用表示,正向定义符合右手螺旋定则,大拇指指向旋转轴正向,其余四指的转向为转角的正向。

轴旋转

为正向旋转角

轴旋转变换的坐标表示为

轴旋转三维变换矩阵为

轴旋转

为正向旋转角

轴旋转变换的坐标表示为

轴旋转三维变换矩阵为

轴旋转

为正向旋转角

轴旋转变换的坐标表示为

轴旋转三维变换矩阵为

反射变换

三维反射分为关于坐标轴的反射和关于坐标平面的反射两类。

关于轴的反射

关于轴反射变换的坐标表示为

关于轴的三维反射变换矩阵为

关于轴的反射

关于轴反射变换的坐标表示为

关于轴的三维反射变换矩阵为

关于轴的反射

关于轴反射变换的坐标表示为

关于轴的三维反射变换矩阵为

关于平面的反射

关于平面反射变换的坐标表示为

关于平面的三维反射变换矩阵为

关于平面的反射

关于平面反射变换的坐标表示为

关于平面的三维反射变换矩阵为

关于平面的反射

关于平面反射变换的坐标表示为

关于平面的三维反射变换矩阵为

相关推荐
俗人六哥AI企业获客盈利系统4 小时前
知识库才是AI落地的分水岭
人工智能·线性代数·矩阵·自动化
微三云 - 廖会灵 (私域系统开发)1 天前
私域电商多端商城系统架构实践:小程序 / APP / H5 一套后端如何落地
矩阵·重构·零售
微三云 - 廖会灵 (私域系统开发)1 天前
多端商城统一账号体系设计实践:小程序 / APP / H5 登录打通与账号合并
矩阵·重构·自动化·零售
智购无人售货机厂家4 天前
2026自动售货机品类拓展逻辑:从饮料零食到鲜食药品文创的工程实践~YH
服务器·人工智能·单片机·线性代数·矩阵
IT小白杨5 天前
社媒多账号运营的环境隔离:一张图谱模型,解释清“为什么换IP还是被连坐“
经验分享·笔记·矩阵·指纹浏览器
镜像视界(浙江)科技有限公司6 天前
《视频孪生之上:二维展示终结,三维空间计算重构城市逻辑》——跨摄像连续表达 × 三角测量厘米级定位 × 动态轨迹建模,构建新一代城市空间
大数据·人工智能·算法·矩阵·音视频·空间计算
wzdark6 天前
稀疏矩阵存储结构及其运算复杂度研究4
线性代数·矩阵
零依赖极客7 天前
Day 9·1 KV 也量化——q8 KV 把缓存与 decode 带宽压到一半
c语言·开发语言·arm开发·人工智能·缓存·矩阵
零依赖极客7 天前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm
wzdark7 天前
基于矩阵的动态规划路径问题性能优化4
线性代数·矩阵·动态规划