0%

【知识汇总】数学相关

本篇总结图形学中常用的数学相关知识点,提供之前笔记的索引,并补充部分内容,方便查找,将持续更新。

给定点集如何求凸包

求凸包算法可以查看 凸包(Convex Hull)问题算法详解,其中比较重要的是分治法、步进法和扫描法:

  • 分治法首先找到一定在凸包上的两个点,然后连线将凸包分为上包和下包,在上包和下包中分别找到距离直线最远的点,连线继续划分,直到找到全部凸包上的点
  • 步进法从一个凸包上的点出发,逆时针寻找其他凸包上的点,每次找到一个点,再从该点出发继续寻找,寻找时是通过连线夹角判断是否为凸包上的点的
  • Graham 扫描法先找到一个凸包上的点,然后以该点为原点对其他点做平移,然后根据各点相对于原点的辐角和距离排序,然后扫描该序列中的点,利用类似单调栈的思路维护凸包点,直到扫描完全部点

向量点乘和叉乘的几何意义

点乘代表一个向量在另一个向量方向上的投影,同时也可以快速求得两向量的夹角,进而判断向量是否同向等等;

叉乘得到的自然是平面法向量,此外叉乘向量的模是两向量构成的平行四边形的面积。

判断点在三角形内的方法

向量叉乘,判断 z 坐标是否同向

代数几何判断点和直线的位置,本质上和向量叉乘一样

重心坐标,其实就是求面积,三个小三角形面积和为大三角形面积说明点在内部,其实就是重心坐标非负

判断点在矩形内部的方法

同样是叉乘,判断点在四条边的内部即可

面积法也可以,可以看作是重心坐标的推广

如何判断凸多边形

逆时针遍历每三个点,判断点在前两个点连线的哪一侧,都在左侧就是凸多边形,都在右侧就是凹多边形

向量叉乘,每三个点组成两个向量,依次叉乘,结果都为正方向为凸多边形

也可以对多边形求凸包,凸包点数和多边形顶点数一样就是凸多边形,少于多边形点数就是凹多边形,但是这种方法没必要

叉乘求多边形面积

叉乘求的是有向面积,只要逆时针每三个点求叉乘再累加起来就是多边形面积的二倍。

空间两直线的距离

可以查看求空间两条直线之间的距离,主要分为两种情况:

  • 平行直线间的距离,相当于求点到直线的距离
  • 异面不平行直线距离,求两条直线上任意两点间连线在两直线方向向量叉乘方向上的投影长度

点到三角形的最近距离

求点和三角形任意一点连线在三角形平面法向上的投影长度即可,平面法向通过三角形三点叉乘可以得到

给定法线和入射光线求反射光线

查看笔记【RayTracer】(五)金属材质中的 3.1 部分

行列式为 0 有什么意义

行列式的几何意义和叉乘一样,都代表面积(二维)或者体积(三维),为 0 意味着二维中两向量重合或者三维中两平面重合,具体的行列式几何意义可以查看【线性代数的几何意义】行列式的几何意义

齐次坐标的意义

为了让所有变换都表示成矩阵向量乘法的形式,引入了齐次坐标。

关于齐次坐标可以查看笔记【计算机图形学】(一)变换的 1.3 部分

光线和球体求交点及优化

查看笔记【RayTracer】(二)实现物体类

光线和三角形求交点

查看笔记【计算机图形学】(十一)Whitted 风格光线追踪的 3.3 部分

光线和 AABB 求交点

查看笔记【计算机图形学】(十一)Whitted 风格光线追踪第 4 部分

M 矩阵对模型的变换顺如何确定

M 矩阵将模型坐标从模型空间变换到世界空间,一般涉及缩放、旋转、平移三种操作,操作顺序不同得到的变换结果也不同,一般要先缩放、后旋转最后平移,因为在物体刚刚放入世界坐标系的时候使用的是本地坐标,也就是本地和全局坐标系的原点和坐标轴都是重合的,此时所有物体都“把世界坐标系当做自己的本地坐标系”。而经过了坐标变换之后:

  • 缩放变换不改变坐标轴的走向,也不改变原点的位置,所以两个坐标系仍然重合。
  • 旋转变换改变坐标轴的走向,但不改变原点的位置,所以两个坐标系坐标轴不再处于相同走向。
  • 平移变换不改变坐标轴走向,但改变原点位置,两个坐标系原点不再重合。

这样就可以解释问什么缩放不能在旋转之后,而缩放和旋转都不能在平移之后了。 于是符合直觉的的顺序只能是 缩放 -> 旋转 -> 平移 。

法线矩阵是什么

法线变换矩阵是原变换矩阵的逆转置,具体可以查看法线矩阵以及笔记【计算机图形学】(一)变换

为什么矩阵 4 维但向量只用 3 维就可以

向量的齐次坐标第 4 维为 0,矩阵 4 维是为了可以同时对向量和点进行变换,对于向量不存在平移变化,所以三维就够了

特征值和特征向量的意义

查看矩阵的特征向量、特征值及其含义

正交矩阵的特征

查看正交矩阵学习小结

旋转矩阵的特征值

三维旋转矩阵的特征值为 1 和与旋转角有关的一对共轭复数,具体可以查看坐标变换(7)—旋转矩阵和特征向量

欧拉角和万向锁

欧拉角优势在于简单,但旋转顺序影响结果并且存在万向锁问题,四元数可以解决万向锁问题

四元数的概念、作用和插值方法

四元数的概念和理解查看笔记【计算机图形学】(二)旋转与四元数

四元数的球面线性插值查看四元数的插值方法

最小二乘法的几何意义

查看最小二乘法(least sqaure method)

矩阵特征值分解和奇异值分解

特征值分解只适用于方阵,奇异值分解适用于任意矩阵

查看【彻底搞懂】矩阵奇异值分解(SVD)强大的矩阵奇异值分解(SVD)

多元函数全微分

查看通俗理解多元函数的全微分

---- 本文结束 知识又增加了亿点点!----

文章版权声明 1、博客名称:LycTechStack
2、博客网址:https://lz328.github.io/LycTechStack.github.io/
3、本博客的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系博主进行删除处理。
4、本博客所有文章版权归博主所有,如需转载请标明出处。