我是靠谱客的博主 寂寞自行车,最近开发中收集的这篇文章主要介绍Games101笔记-Lecture02图片来源为课程PPT,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Vectors(向量)

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

Vector Normalization(向量归一化)

向量的模(magnitude)写成 ∥ a ⃗ ∥ lVertvec{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}cdotvec{b}=|vec{a}||vec{b}|cos{theta} a b =a b cosθ θ theta θ为两向量夹角)
cos ⁡ θ = a ⃗ ⋅ b ⃗ ∥ a ⃗ ∥ ∥ b ⃗ ∥ cos{theta}=dfrac{vec{a}cdotvec{b}}{|vec{a}||vec{b}|} cosθ=a b a b
点乘满足结合律、分配律、交换律

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

在这里插入图片描述

  • 叉乘的结果是个垂直于两个向量的向量,方向由右手螺旋定则决定
cross product in graphics
  • 区分左/右
    a ⃗ × b ⃗ > 0 vec{a}timesvec{b}>0 a ×b >0 a ⃗ vec{a} a b ⃗ vec{b} b 右方,反之在左方
    在这里插入图片描述
  • 区分里/外
    p点在三角形里面,三个叉乘值均为正数或均为负数。在三角形外部则三个叉乘值不同号。
    A B → × A P → > 0 overrightarrow{AB}timesoverrightarrow{AP}>0 AB ×AP >0    B C → × B P → > 0 overrightarrow{BC}timesoverrightarrow{BP}>0 BC ×BP >0    C A → × C P → > 0 overrightarrow{CA}timesoverrightarrow{CP}>0 CA ×CP >0
    在这里插入图片描述
  • 区分凹多边形
    对凸多边形而言,例如上方的三角形, A B ⃗ × B C ⃗ 和 B C ⃗ × C B ⃗ 和 C B ⃗ × A B ⃗ 同 号 。 vec{AB}timesvec{BC}和vec{BC}timesvec{CB}和vec{CB}timesvec{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}timesvec{b}=A*vec{b}=begin{pmatrix}0&-z_a&y_a\z_a&0&-x_a\-y_a&x_a&0end{pmatrix}begin{pmatrix}x_b\y_b\z_bend{pmatrix} a ×b =Ab =0zayaza0xayaxa0xbybzb

图片来源为课程PPT

最后

以上就是寂寞自行车为你收集整理的Games101笔记-Lecture02图片来源为课程PPT的全部内容,希望文章能够帮你解决Games101笔记-Lecture02图片来源为课程PPT所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部