Games101笔记-Lecture02

Vectors(向量)

写成 a ⃗ \vec{a} a 或者 a \bold{a} a
或者用起点和终点的 A B → = B − A \overrightarrow{AB}=B-A AB =BA
有长度和方向
没有绝对的起始位置

Vector Normalization(向量归一化)

向量的模(magnitude)写成 ∥ a ⃗ ∥ \lVert\vec{a}\rVert a
单位向量(unit vector)即是一个单位长度的向量(a vector with magnitude of 1)
获取一个向量的单位向量: a ^ = a ⃗ / ∥ a ⃗ ∥ \hat{a}=\vec{a}/\|\vec{a}\| a^=a /a
用于表示方向

Vector Addition(向量相加)

在这里插入图片描述
几何上可以用平行四边形法则或三角形法则表示
代数上用基的相加表示

Cartesian Coordinates(笛卡尔坐标)

用两个互相垂直的基来表示向量
A = ( x y ) A= \begin{pmatrix}x \\y \end{pmatrix} A=(xy) A T = ( x y ) A^T= \begin{pmatrix}x &y \end{pmatrix} AT=(xy) ∥ A ∥ = x 2 + y 2 \|A\|=\sqrt{x^2+y^2} A=x2+y2

Vector Multiplication(向量乘积)

dot product(点乘)

在这里插入图片描述
a ⃗ ⋅ b ⃗ = ∥ a ⃗ ∥ ∥ b ⃗ ∥ cos ⁡ θ \vec{a}\cdot\vec{b}=\|\vec{a}\|\|\vec{b}\|\cos{\theta} a b =a b cosθ θ \theta θ为两向量夹角)
cos ⁡ θ = a ⃗ ⋅ b ⃗ ∥ a ⃗ ∥ ∥ b ⃗ ∥ \cos{\theta}=\dfrac{\vec{a}\cdot\vec{b}}{\|\vec{a}\|\|\vec{b}\|} cosθ=a b a b
点乘满足结合律、分配律、交换律

图形学中的点乘应用
  • 得到两个向量的夹角
  • 得到一个向量在另一个向量上的投影
  • 分解向量在这里插入图片描述
  • 区分前方和后方
    在这里插入图片描述
cross produce(叉乘)

在这里插入图片描述

  • 叉乘的结果是个垂直于两个向量的向量,方向由右手螺旋定则决定
cross product in graphics
  • 区分左/右
    a ⃗ × b ⃗ > 0 \vec{a}\times\vec{b}>0 a ×b >0 a ⃗ \vec{a} a b ⃗ \vec{b} b 右方,反之在左方
    在这里插入图片描述
  • 区分里/外
    p点在三角形里面,三个叉乘值均为正数或均为负数。在三角形外部则三个叉乘值不同号。
    A B → × A P → > 0 \overrightarrow{AB}\times\overrightarrow{AP}>0 AB ×AP >0    B C → × B P → > 0 \overrightarrow{BC}\times\overrightarrow{BP}>0 BC ×BP >0    C A → × C P → > 0 \overrightarrow{CA}\times\overrightarrow{CP}>0 CA ×CP >0
    在这里插入图片描述
  • 区分凹多边形
    对凸多边形而言,例如上方的三角形, A B ⃗ × B C ⃗ 和 B C ⃗ × C B ⃗ 和 C B ⃗ × A B ⃗ 同 号 。 \vec{AB}\times\vec{BC}和\vec{BC}\times\vec{CB}和\vec{CB}\times\vec{AB}同号。 AB ×BC BC ×CB CB ×AB
    若是凹多边形,则凹入的点的两条边向量叉乘值和其他叉乘值异号

Matrices(矩阵)

  • 在图形学中被广泛应用于表达各种转换(Transformations)
Matrix-Matrix Multiplaction
  • A m n B n p = C m p A_{mn}B_{np}=C_{mp} AmnBnp=Cmp  其中矩阵A的列数必须等于矩阵B的行数,相乘结果的矩阵C行数和列数各为A的行数和B的列数
  • 不支持交换律

Cross Product

向量的叉乘可以写成矩阵作用形式:
a ⃗ × b ⃗ = A ∗ b ⃗ = ( 0 − z a y a z a 0 − x a − y a x a 0 ) ( x b y b z b ) \vec{a}\times\vec{b}=A*\vec{b}=\begin{pmatrix}0&-z_a&y_a\\z_a&0&-x_a\\-y_a&x_a&0\end{pmatrix}\begin{pmatrix}x_b\\y_b\\z_b\end{pmatrix} a ×b =Ab =0zayaza0xayaxa0xbybzb

图片来源为课程PPT

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值