物理模拟第二节 线代快速入门

基础数学部分略去,按时间顺序记一些值得记录的点。
由于有大量已经学习过的知识,因此记录非常零碎。

英文单词学习

norm 范数 Euclidean norm 欧几里得范数(二范数) interpolant 插值
Gouraud Shading 和 Phong Shading Flat Shading是三大光照顶点着色法。
Barycentric weight 重心坐标权重 Tetrahedral 四面的 Particle-triangle Intersection 粒子三角交 symmetric 对称 Transpose 转置 Diagonal 对角
Orthogonal matrix 正交矩阵 matrix Transformation 正交矩阵 Symmetric Positive Detiniteness 对称正定性 (半正定加个semi-)

坐标系与零碎基础知识

左手系与右手系,判别依据在当手掌正放时,将大拇指与食指、中指称坐标系排列,大拇指所指方向为x轴正方向,食指所指方向为y轴正方向,中指所指方向为z轴正方向。
左手系同理。
使用右手系的有:OpenGL,左手系的有:Unity与DirectX。
左手系相对的优势在于他是根据电脑屏幕的位置来确定的,使用左手系能够保证所计算的值都为正数。
我们常用黑色粗体来表示一个向量,这是由于在计算机上这样比较方便美观。
点乘有三种常见的写法,分别为<a, b>, a·b, a T b a^Tb aTb三种。
我们对线段上点的表示常有两种方法,分别为:
p ( t ) = { p + t ( q − p ) ( 1 − t ) p + t q p(t) = \left\{ \begin{matrix} p+t\left ( q-p \right) \\ (1-t)p+tq \end{matrix} \right . p(t)={p+t(qp)(1t)p+tq
下面这种插入点的方法常常被称为线性插值。
无穷范数的值就是他的最大值(自证不难)。

平面表示法

一个平面可以用它的法向量来进行表示。我们可以通过计算点与法向量形成向量的投影(点乘)来判断是否发生碰撞,这常用于碰撞检测。
同样的,如果是一个球,我们可以通过计算与球心的距离来判断碰撞。
计算碰撞发生的时间,比每个帧计算距离判断是否发生碰撞要节约大量资源。
叉乘不满足交换律,如果进行交换需要加上负号。
通过计算一点与三角形内任意两点形成向量的叉乘值点乘法向量n可以判断点是否在图形内,这需要满足四点共平面的前提条件。
这种插入点获取图形分割的方法被称为三角形插值。
三角形插值在Gouraud Shading 模型中有较多使用。

四面体的探讨

一个普普通通的四面体
可以计算出四面体底面积为: ∣ ∣ A B ∗ A C ∣ ∣ 2 \frac{||AB*AC||}{2} 2ABAC
高为: A P ⋅ A B ∗ A C ∣ ∣ A B ∗ A C ∣ ∣ AP·\frac{AB*AC}{||AB*AC||} APABACABAC
计算得: V = 1 6 A C ⋅ A B ∗ A C V = \frac{1}{6}AC·AB*AC V=61ACABAC
或者可以表示为:
1 6 ∣ B C P A 1 1 1 1 ∣ \frac{1}{6}|\begin{matrix}B & C & P & A\\ 1&1&1&1\end{matrix}| 61B1C1P1A1
注意体积是有正负的,如与体积平面法向量朝向相同,则为正,否则为负。
同理,我们可以由此计算出什么时候点将会与四面体发生碰撞。
基础公式依旧为:
( p ( t ) − x A ) ⋅ x A B ∗ x A C = 0 (p(t)-x_A)·x_{AB}*x_{AC} = 0 (p(t)xA)xABxAC=0
计算出相应的t即可。

关键概念

Orthogonal matrix 正交矩阵( A A − 1 = I AA^{-1}=I AA1=I)
满足 a i T a j = { 1 , i f i = = j 0 , i f i ! = j a_i^Ta_j=\left\{ \begin{matrix} 1, &if &i==j \\ 0, &if &i!=j \end{matrix}\right . aiTaj={1,0,ififi==ji!=j
正定矩阵
奇异矩阵
特征矩阵
//待补充…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值