计算机图形学-GAMES101-2

Vectors向量

一、向量的介绍

  • 表示一个方向。
  • 计算向量的方法:AB =(B-A)。
  • 向量对应的单位向量 = AB / ||AB|| 。
  • 向量具有平移性,我们不关心它的开始位置。
  • 向量求和:三角形法则和平行四边形法则。在代数上计算直接把向量的对应坐标相加即可。
  • 向量可表示为一个列向量
    在这里插入图片描述

(1)向量的点乘

  • 向量点乘的结果是它们间夹角的余弦值。
    在这里插入图片描述
  • 向量点乘的计算是对应坐标相乘,向量点乘满足交换律、分配律、结合律。
    在这里插入图片描述- 向量的投影为:被投影向量长度乘以两向量间夹角的余弦。
    在这里插入图片描述
  • 向量的分解:根据向量投影和加法分解到两个互相垂直的轴上。
    -
  • 依据向量点乘判断向量间是否同向和接近:同向则夹角小于等于90°,则夹角余弦大于0小于1;两向量越接近夹角越小,夹角余弦越接近1。
    -

(2)向量的叉乘

  • 向量的叉乘:叉乘的结果叉积为向量,且这个向量垂直与两向量垂直。
    在这里插入图片描述
  • 上图介绍了向量叉乘大小的计算,而对于方向,伸出右手,四指指向第一个叉乘向量的方向,再让四指慢慢弯向第二个叉乘向量的方向,此时大拇指所指方向就为叉积结果方向。注意从第一个向量转向第二个向量,要选它们之间较小的夹角,其次对于手的旋转,手指只能向手心旋转而不能是手背。
  • 叉乘不满足交换律,交互叉乘顺序后叉积结果与原结果方向相反。
  • 叉乘的作用:计算坐标轴
    在这里插入图片描述

二、坐标系

  • 如果在一个坐标系中x轴叉乘y轴得到z轴,我们就称它为右手坐标系,因为它的叉乘是按照右手螺旋定则运算。GAMES101中都使用右手坐标系。
  • 对于OpenGL等API中,使用的是左手坐标系,即x轴叉乘y轴得到负z轴。

(1)叉乘的代数运算

  • 叉乘没有交换律,如果要交换且保持结果不变需要加一个符号。物理矢量叉乘都是使用右手螺旋定则。
  • 向量自己叉乘得到的是一个长度为0的向量。
    在这里插入图片描述
  • 向量叉积结果的代数运算,可以将向量通过下图方式转换为矩阵进行运算
    在这里插入图片描述

(2)向量叉积的作用

  • 判断左和右。左右的定义:如果向量A逆时针旋转180°以能和向量B同向,则说明向量A在向量B的右侧,反之说明A在左侧。
  • 设想我们屏幕上有两个向量,我们要判断它们的相对左右关系,我们将两个向量的z值都设为0使得两个向量都处于XY平面中(其实我们视觉上也是想判断它们基于XY平面的相对左右关系)。
  • 我们对这个两个位于XY平面中的向量A、B做叉乘A×B。设Z轴正半轴指向屏幕以外。如果结果叉积的Z值为正,则根据右手螺旋定则,说明A向量位于B向量的右边,为负则说明A向量位于B向量的左边。注意实际计算时,要根据坐标系的建立、视线方向去调整对叉乘结果的解释。
    在这里插入图片描述
  • 判断内和外。思想如下图所示,判断哪侧根据叉积。算法代码。注意也可以依次叉乘A B C,即AB×AP、BC×BP、CA×CP,它们的值符号都应该相同,如果有一个值为0则说明P点在三角形某一边上,可自定义其在内还是外。在这里插入图片描述

(3)建立坐标系

  • 建立互相垂直的u、v、w右手坐标系,将向量P沿着各个坐标轴进行分解。由于||u||=1,因此p·u就为p在u方向上的投影。
    在这里插入图片描述

三、矩阵

(1)矩阵的乘积

  • 矩阵乘积的要求:要求第一个矩阵的列数等于第二个矩阵的行数。在这里插入图片描述
  • AB一般不等于BA。矩阵运算的规律,记住不能对调
    在这里插入图片描述

(2)矩阵转置

  • 行列互换
    在这里插入图片描述
  • 矩阵相乘的转置
    在这里插入图片描述

(3)单位矩阵和逆矩阵

  • 单位矩阵是对角矩阵,对角矩阵是主对角线以外元素全为0.
    在这里插入图片描述
  • 一个矩阵的逆矩阵,和其相乘结果为单位矩阵。在这里插入图片描述

(4)向量与矩阵

  • 向量的点乘和叉乘都可以写成矩阵形式,点乘需要转置其中一个向量,叉乘需要将向量转换为矩阵。
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仰望—星空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值