MickeyMiao

起点草甸

MickeyMiao

code is cheap, show me your prompt

51 篇文章 · 18 个分类 · 4 位朋友

向下滑动,出发 (或按 1-6 直达)

服务器小镇

家里小主机上的 Minecraft 生存服,白名单制。加入:QQ 群

状态
读取中…
在线
-
版本
-
已开服
-

每 10 分钟更新一次

关于雪松林

嗨,我是王思淼

图形渲染开发工程师 @ 小米。喜欢图形学、游戏和折腾服务器。

完整介绍 GitHub Bilibili Steam

回到森林 Esc 关闭

笔记GAMES101

GAMES101 第2讲 线性代数

向量

向量的定义

  • 写作
    • 箭头表示:
    • 粗体表示:
  • 基于起点与终点:
  • 最重要的属性:
    • 长度
    • 方向
  • 没有绝对的起点和终点(平移不变性)

向量的单位化

  • 向量的长度大小通常写成
  • 单位化后的向量记作

向量求和

  • 几何: 平行四边形法则/三角形法则
  • 代数: 坐标直接相加

笛卡尔坐标系

笛卡尔坐标系: 以直角为基础的坐标系, 通常用于表示二维或三维空间中的点或向量

在二维坐标系中, 任何一个向量都可以表示为两个基向量的线性组合

表示 的转置, 即将 的行向量转换为列向量

在笛卡尔二维坐标系中, 向量的长度可以表示为:

向量的点乘

在几何上的理解

向量的点乘的标准定义:

由此可得:

对于单位向量, 它们点乘即为夹角的余弦值:

点乘的性质:

  • 交换律:
  • 分配律:
  • 乘法结合律:

迪卡尔坐标系下的点乘

2D 点乘:

3D 点乘:

图形学中的应用

  • 找到两个向量之间的夹角(判断是否垂直)
  • 找到一个向量在另一个向量上的投影(投影长度)

向量的叉乘

基本概念

  • 法向量: 向量叉乘得到的向量与两个初始向量都垂直(垂直于两个向量所在的平面)
  • 遵循右手定则: 四根手指从第一个向量转向第二个向量, 大拇指指向叉乘结果
  • 不满足交换律:
  • 对构造坐标系有很大的帮助

在三维笛卡尔坐标系下的叉乘

叉乘可用于构造三维笛卡尔坐标系, 只需要两个向量即可构造出第三个向量

叉乘的基本数学性质

叉乘不满足交换律, 但满足以下性质:

叉乘在代数上的表示

在三维笛卡尔坐标系下, 叉乘的计算公式为:

向量的叉乘可以表示成矩阵的形式: 即向量可以写成矩阵

向量的叉乘在图形学中的应用

  • 判定左和右: 例如, 在屏幕上, 向量和向量的叉乘结果的分量的正负可以判断在的左边还是右边

  • 判定内和外: 例如在三角型中, 要判断点P是否在三角形ABC内部, 可以通过向量和向量的叉乘结果的分量的正负来判断

三维正交坐标系

给定三个向量满足以下条件:

则任意一个向量都可以表示为:

这里的, , 分别表示在, , 上的投影

矩阵

矩阵的定义

矩阵是一个二维数组(, 行列), 通常用大写字母表示

矩阵的运算

矩阵与标量的数学运算

矩阵与标量的加法:

矩阵与标量的乘法:

矩阵与矩阵的乘积(重要)

前提: 第一个矩阵的列数等于第二个矩阵的行数

结果:

例如下方的矩阵相乘, 第一个矩阵是3行2列, 第二个矩阵是2行3列, 第一个矩阵的列数等于第二个矩阵的行数, 因此可以相乘, 结果是3行3列的矩阵

计算方法: 如果我们想找结果矩阵的第行第列的元素, 可以将第一个矩阵的第行和第二个矩阵的第列对应元素相乘, 然后相加, 即:

性质 :

  • 没有任何交换律:
  • 结合律:
  • 分配律: 注意前后顺序不能颠倒

矩阵与向量相乘

将向量视为一个 的列矩阵(即是竖着的, 列数为1的矩阵)

例如: 将一个向量沿y轴轴对称变换

矩阵的转置

矩阵的转置是将矩阵的行和列互换得到的新矩阵, 记作

例如:

性质: 如果对两个相乘的矩阵取转置, 结果是后一个矩阵的转置与前一个矩阵的转置相乘

单位矩阵

单位矩阵是一个对角线上的元素都是1, 其他元素都是0的矩阵, 且行数等于列数, 记作

矩阵的逆

逆矩阵: 一个矩阵与其逆矩阵相乘必定得到单位矩阵, 记作

性质:

向量以矩阵的形式表示

点乘

叉乘

这里的是转换成矩阵的形式, 这里的*不表示乘法

#GAMES101#计算机图形学

评论