本专栏内容整理了GAMES101的计算机图形学课程的主要内容,作为我学习计算机图形学的一份复习备份或叫做笔记。内容中如有错误,或有其他建议,欢迎大家指出。

附上GAMES101计算机图形学课程:GAMES101: 现代计算机图形学入门https://sites.cs.ucsb.edu/~lingqi/teaching/games101.html

GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibiliGAMES101-现代计算机图形学入门-闫令琪共计23条视频,包括:Lecture 01 Overview of Computer Graphics、Lecture 02 Review of Linear Algebra、Lecture 03 Transformation等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1X7411F744

计算机图形学中更依赖线性代数,主要使用到:向量的点乘,叉乘,向量 x 矩阵描述变换:如向量的平移和旋转操作可以用向量乘矩阵来表示;

向量(Vectors)

有方向有大小的量
方向:A->B :   = B - A;
长度:|| ||
向量平移后表示的是同一个向量

单位向量(长度为1的向量): / ||a||,图形学里表示方向时都用单位向量表示,不用关心它的长度

向量加法:三角形法则  + =  , 平移后面的向量使其开始跟前面的向量的结束重合,再由前面的向量的开始指向后一个向量的结束;

图形学中笛卡尔坐标系中向量的表示,(0,0)固定是所有向量的起点(x,y)是终点

向量的点乘

几何意义:是一条边向另一条边的投影乘以另一条边的长度。

向量点乘满足交换律,结合律,和分配律

向量点乘的计算描述:对应的项相乘然后加起来

向量点乘在图形学中的作用:
        求两个向量的夹角;
        求一个向量在另一个向量上的投影;
        做向量的垂直 分解;
        判断方向性:方向基本一致:点积>0;   方向基本相反:点积<0;   向量相互垂直:点积=0;(锐角、钝角、直角)

向量叉乘

叉乘结果:两个参与叉乘的向量(a , b)得到一个新的向量 ( c ),且该向量( c )垂直于参与叉乘的两个向量(a , b);结果向量(c)的方向由右手定则可以判断;
右手定则:右手掌心由 a 旋转到 b ,得到大拇指所指方向即是叉积向量的方向;

||  || = |||| |||| sin

怎么算:

用手机的连线解锁 由 Xa -> Ya -> Za -> 0 ,0 ,0 -> -Xa -> -Ya -> -Za方便记住

向量叉乘的作用
用于构建坐标系;
当a是单位向量时,计算b终点到a所在直线的距离;
在二维空间中,aXb等于由向量a和向量b构成的平行四边形的面积。
判断两向量的左右关系:即判断叉积的正负,a x b = +c ==> ba的左侧;ab的右侧
判断一个点是否在某个多边形内部:判断点是否都在每条边的左边,或者是否都在右边,是则表示点在多边形内部,图形学中光栅化时需要判断

AB x AP = +  ==>P在AB的左侧;
BC x BP = +  ==>P在BC的左侧;
CA x CP = +  ==>P在CA的左侧;所以P在三角形ABC内;

矩阵(Matrices)

矩阵就是一堆数,把这堆数安排在一个平面内,再按照m行n列来排列构成m  n 的矩阵;矩阵在图形学中最大的应用就是描述变换;

矩阵的乘积

A,B 两个矩阵要相乘 ,必须满足 A的行数量 == B的列数量,结果矩阵是一个有A的行数和B的列数的矩阵;结果矩阵中的元素(i, j)为A的第i行和B的第j列的点积;

如:下图结果矩阵中第2行第3列的值是 A的第二行第一个数:5 乘以 B的第三列第一个数:9 加上A的第二行第二个数:2 乘以 B的第三列第二个数:8 
即:5 x 9 + 2 x 8 = 61;
(M x N) (N x P) = (M x P)

​​​​​​

图中空缺处:1 x 6 + 3 x 7 = 27;   0 x 4 + 4 x 3 = 12

矩阵乘积的性质:
   没有任何交换律: AB !== BA; (先旋转再平移和先平移再旋转的结果是不一样的; 矩阵描述的旋转都是围绕原点旋转)
   有结合律和分配律:(AB)C=A(BC) ; A(B+C) = AB + AC; (A+B)C = AC + BC;

矩阵的转置:
m行n列的矩阵变为n行m列的矩阵;

性质:对乘积的转置,需要分别对两个矩阵转置再乘积;

单位矩阵: 矩阵右上到左下那条都是1,其他的元素都是0。任何矩阵与单位矩阵相乘都等于本身

逆矩阵:两个矩阵的乘积是单位矩阵。则称这两个矩阵互逆;

正交矩阵:矩阵的逆矩阵正好是它的转置,则矩阵A称为正交矩阵;
                  A = 
 

矩阵向量乘法

始终将向量视为列矩阵(m×1),m是向量的维数。矩阵始终要在向量的左侧,列向量始终在最右侧。列向量的变换中。按顺序变换的各个矩阵都在列向量左侧,从右到左按变换的先后的顺序排列排列,也就是说越靠近列向量的矩阵越先发生变换;

下面的运算描述向量(x,y)按y轴进行对称映射

 向量点乘的矩阵表示:

下一篇:变形!!额,是变换!计算机图形学入门-变换_苏剑涛@XM的博客-CSDN博客

计算机图形学入门-线性代数复习相关推荐

  1. 计算机图形学入门(一)-线性代数部分知识1

    本部分主要介绍了向量的点乘与叉乘在图形学中的基本应用,介绍了图形学中常用的2D矩阵变换,例如缩放.对称.切变换.旋转.平移.逆变换.组合变换和分解变换.还有在图形学中为了简化操作而采取的添加维度的方法 ...

  2. 计算机图形学入门(二)-线性代数部分知识2视图变换和投影变换

    本章主要进行了视图/相机变换的求解,和两种投影变换的求解(正交投影.透视投影),并且简单的完善了3D旋转变换的介绍. 主要的学习过程来自下面的视频,本文只会有主要的基础内容,默认一些知识大家是掌握的, ...

  3. Games101计算机图形学入门基础之二:光栅化

    Games101计算机图形学入门基础之二:光栅化 引言 三角形的离散化 采样 走样 走样带来的瑕疵 反走样 先模糊再采样 傅里叶变换 低通滤波 卷积 多重采样抗锯齿(超采样) 深度缓存 可见性与遮挡( ...

  4. GAMES101-现代计算机图形学入门-闫令琪——Lecture 05 Rasterization 1 (Triangles)

    GAMES101-现代计算机图形学入门-闫令琪--Lecture 05 Rasterization 1 (Triangles) 目录 GAMES101-现代计算机图形学入门-闫令琪--Lecture ...

  5. Games101计算机图形学入门基础之一:向量变换、矩阵变换、视图变换、欧拉角与四元数

    Games101计算机图形学入门基础之一:向量变换.矩阵变换.齐次坐标.欧拉角与四元数 目录 Games101计算机图形学入门基础之一:向量变换.矩阵变换.齐次坐标.欧拉角与四元数 前言 向量 向量加 ...

  6. OpenGl计算机图形学入门

    OpenGl计算机图形学入门 前言 一.OpenGl及GLSL 二.语言 1.C++及C++应用程序 (1)C++ (2)C++应用程序 三.库 1.GLFW 窗口管理库 2.GLEW 扩展库 3.G ...

  7. 计算机图形学入门(GAMES101)总结01

    这几天在看闫令琪老师的图形学入门课程,感觉讲得太好了!! 因此记录一下所写的知识,方便后面复习使用. 00 计算机图形学介绍 主要介绍了图形学有关的领域,例如:游戏,电影,动画,设计,可视化,VR(虚 ...

  8. 计算机图形学入门总结!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Albert,东南大学,Datawhale成员 Computer ...

  9. Games101--现代计算机图形学入门 作业3笔记(渲染管线、着色模型、双线性插值)

    一.渲染管线 一.作业要求 在这次编程任务中,我们会进一步模拟现代图形技术.我们在代码中添加了ObjectLoader(用于加载三维模型),VertexShader与FragmentShader,并且 ...

最新文章

  1. js中的true,false盲点
  2. Python中的 @staticmethod@classmethod方法
  3. JavaScript ES6对Proxy的原生支持的一个例子
  4. python点名代码_基于python tkinter的点名小程序功能的实例代码
  5. 【移植驱动到Linux3.4.2内核之二】LCD,触摸屏,按键,USB等驱动程序的移植心得总结
  6. 秒懂云通信:如何用阿里云语音通知服务(小白指南)
  7. 扩展欧几里得算法与模乘逆元的程序
  8. Java23种设计模式(一)
  9. 动态规划之矩阵连乘问题详细解读(思路解读+填表+代码)
  10. Halcon原理:auto_threshold算子
  11. TF卡(全称Trans Flash)
  12. 3DS MAX 基础知识 材质编辑器
  13. 测试经典面试问题:一个项目从0到1,你需要做哪些工作?工作的重点是什么?
  14. turtle实例2 奥运五环
  15. __attribute__((weak)) 简介及作用
  16. 罗格斯大学计算机科学属哪个学院,罗格斯大学工程学院信息介绍以及申请条件详细解读...
  17. 三维重建3:旋转矩阵-病态矩阵、欧拉角-万向锁、四元数
  18. 蓝牙热敏打印开发(佳博打印机)
  19. 安卓数据恢复大师:PhoneRescue for Android Mac中文版
  20. java实现随机数抽奖_JAVA使用随机数实现概率抽奖

热门文章

  1. 机器人学笔记(01):1.绪论
  2. 检查IP或端口是否被封
  3. Android Studio 3.0+ 新Dex编译器D8 Desugar R8
  4. 江在川上曰:js中的JSON解析和序列化
  5. Windows命令行学习笔记
  6. 亲历被盗iPhone流通链:串号泄露机主信息
  7. 美国贝勒大学计算机科学专业怎么样,美国贝勒大学怎么样
  8. YOLOX源码解读系列
  9. BZOJ4200 洛谷2304 UOJ132:[NOI2015]小园丁与老司机——题解
  10. R语言构造扑克牌自动发牌,洗牌