3D数学基础:图形和游戏开发(第2版)第2章笔记
第2章 矢量
- 2.1 向量和其他无聊东西的数学定义
- 2.2 矢量的几何定义
- 2.3 使用笛卡儿坐标指定矢量
- 2.4 矢量与点
- 2.5 负矢量
- 2.6 标量和矢量的乘法
- 2.7 矢量的加法和减法
- 2.8 矢量大小(长度)
- 2.9 单位矢量
- 2.10 距离公式
- 2.11 矢量点积
- 2.12 矢量叉积
- 2.13 线性代数恒等式
第2.1节介绍了向量的一些基本数学性质。
第2.2节高层次地介绍了向量的几何性质。
第2.3节将数学定义与几何定义联系起来,并讨论向量在笛卡尔坐标框架下的工作方式。
第2.4节讨论了点和向量之间经常令人困惑的关系,并考虑了一个相当哲学的问题:为什么做绝对测量如此困难。
第2.5-2.12节讨论了我们可以用向量进行的基本计算,考虑了每个操作的代数和几何解释。
第2.13节给出了一系列有用的向量代数定律。
2.1 向量和其他无聊东西的数学定义
对数学家来说,向量是一组数字。在程序员眼里,向量 = 数组。
向量的维度表示这个向量包含多少个数字。向量可以是任何正维度,包括1个。事实上,标量可以被认为是一维向量。
一个水平写的向量被称为行向量,例如:[1,2,3]。
一个垂直写的向量被称为列向量,例如:(也可以写成[1,2,3]T)
当我们在一段中写向量时,我们通常在数字之间加逗号。当我们把它写成方程时,逗号常常被省略。
向量的下标符号表示
对于任何给定的向量维数,都有一个特殊的向量,称为零向量,它在每个位置上都是零。例如,三维零向量是(0, 0, 0)。我们用黑体 0 表示任何维度的零向量。是唯一一个没有方向的向量(可以指向任何方向)。
标量变量用小写的罗马或希腊字母表示:a, b, x, y, z,θ,α, ω,γ。
任何维度的向量变量都用黑体小写字母表示:a, b, u, v, q, r。
矩阵变量用黑体字表示:A、B、M、R。
请注意,其他作者可能使用不同的约定。在手写矢量时,一个常用的约定是在矢量上画一个箭头,例如.
2.2 矢量的几何定义
几何上来说,矢量是一条有大小和方向的有向线段。
- 矢量的大小就是矢量的长度。一个向量可以有任何非负长度。
- 矢量的方向描述了矢量在空间中的方向。注意,“方向direction”与“定向orientation”并不完全相同。
注意:矢量没有位置
2.3 使用笛卡儿坐标指定矢量
通过在每个维度上给出有符号的位移来指定矢量。
考虑矢量所描述的位移的一个有用的方法是把矢量分解成轴向对齐的分量。当这些轴向对齐的位移组合在一起时,它们累计地定义了由矢量定义的位移作为一个整体。执行这些步骤的顺序并不重要。
2.4 矢量与点
- 矢量用来描述位移,因此它们可以描述相对位置。
- 点用于指定位置。
2.5 负矢量
对一个矢量变负会得到一个大小相同但方向相反的矢量。
记住,矢量在图上的位置是无关紧要的(只有大小和方向是重要的)。
2.6 标量和矢量的乘法
当矢量和标量相乘时,我们不使用任何乘法符号。乘法是通过把两个量放在一起来表示的(通常是把矢量放在右边)。
一个标量不能被一个矢量除,一个矢量不能被另一个矢量除。
几何上,矢量乘以标量k的结果是,矢量的长度乘以k。
2.7 矢量的加法和减法
矢量不能与标量或不同维数的矢量相加或相减。
几何解释:
2.8 矢量大小(长度)
几何解释(勾股定理):
有些书使用单个条形符号来表示矢量大小:|v|
2.9 单位矢量
单位向量是一个大小为1的向量。单位向量也被称为归一化向量(normalized vectors)。
对于任意非零矢量v,归一化一个矢量使它成为单位矢量:
零向量不能被归一化。
2.10 距离公式
a和b之间的距离等于向量d的长度
推导:
2.11 矢量点积
当执行向量点积时,一定不能省略点符号。
使用求和符号表示的点积
由方程检验可知,向量点积是可交换的:a·b = b·a。
你可以把b在(单位矢量)上的投影想象成当光线垂直于时b投射在上的“阴影”
这意味着当b的投影与ˆ方向相反时,该值为负,当和b垂直时,投影长度为零(这是一个单点)。
点积大于0表示在前面,点积等于0表示在两边,点积小于0表示在后面
点积作为投影
点积(a·b)等于b在任何平行于a的直线上投影的带符号长度,乘以a的长度。
点积是交换的
点积分布于加法和减法
向量大小和点积的关系
用基矢量做点积可以筛选出相应的坐标(基矢量必须是两两垂直)。
在这种情况下,点积并没有“筛选”出坐标。
假设是一个单位向量,b有任意长度。使用点积,可以将b分为两个值,和,它们分别与平行和垂直,使b = +。
我们已经确定了的长度等于·b。但是点积会产生一个标量,而是一个矢量,所以我们取单位矢量指定的方向,然后将其放大:
矢量夹角与点积关系
两个矢量a和b的点积等于这两个矢量之间夹角θ的余弦值,再乘以这两个向量的长度
用点积来计算两个矢量的夹角
点积的符号可用作两个矢量夹角的粗略分类
大于0,角度为锐角
等于0,角度为直角
小于0,角度为锐角
2.12 矢量叉积
我们总是写叉积符号,而不是像标量乘法那样省略它。
叉积的运算符优先级与点乘相同:乘法发生在加法和减法之前。当点积和叉积同时使用时,叉积优先
矢量叉积是不可交换的。事实上,它是反交换的:
a × b =−(b × a)
叉积也不是结合律。一般来说,
(a × b) × c != a × (b × c)。
几何解释:
a × b叉积的结果垂直于ab平面
a × b叉积的的方向是(左手规则,四指沿着a和b的方向,拇指指向的方向即是叉积的的方向):
叉积的值等于由边a和b组成的平行四边形的面积
2.13 线性代数恒等式
3D数学基础:图形和游戏开发(第2版)第2章笔记相关推荐
- 3d数学基础:图形和游戏开发(第2版)_游戏引擎编程需要哪些基本数学知识?
现今,想要从头写一个功能强大的3D引擎,个人的力量恐怕难以胜任,即使能力足够,时间恐怕也不允许.在这个美好的开源时代,你只需具备修改各种引擎的能力便足以满足开发游戏的各项需求.现代游戏引擎的复杂级别已 ...
- 3d数学基础:图形和游戏开发(第2版)_人教版五年级数学上册教学计划进度表
文末有打印资料的方法 往期回顾: 统编版五年级语文上册第1课<白鹭>视频+课件+练习 统编版五年级语文上册第2课<落花生>视频+课件+练习 统编版五年级语文上册第3课<桂 ...
- 3d数学基础图形与游戏开发第二版_游戏开发完整学习路线,都在这里了
在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指路,是可以事半功倍的. 平台与编程语言选 ...
- 3d数学基础图形与游戏开发 英文版_1850款文字标题字幕条,AE图形预设包,logo生成神器...
2019最新1850款组文字LOGO动画预设,一键生成! 包含图形元素/字幕/logo/动画转场/背景等 所有的元素都支持AE和PR 所有元素的 颜色.位置.大小.文字.Logo等 都可以修改,包含G ...
- 3D数学基础:图形与游戏开发---随笔五
向量运算 5.1 线性代数与几何 数学中专门研究向量的分支称作线性代数. 5.2 符号约定 变量是代表未知量的占位符.本书用不同的字体来区分不同的变量: 标量,用斜体的小谢罗马或者希腊字母表示,如a. ...
- 3D数学基础:图形与游戏开发---随笔四
向量 向量是2D.3D数学研究的标准工具. 4.1 向量--数学定义 对数学家而言,向量就是一个数字列表,对程序员而言则是另一种相似的概念--数组.数学上,一个向量就是一个数组. 数学上,区分向量和标 ...
- 3D数学基础:图形与游戏开发---随笔三
多坐标系 3.1 为什么要使用多坐标系? 不同的情况下使用不同的坐标系更加方便.(定义一个坐标系是为了我们方便描述一件事情,而在不同的领域它有不同的作用,比如相对论) 3.2 一些有用的坐标系 世界坐 ...
- 3D数学基础:图形与游戏开发---随笔二
笛卡尔坐标系统 笛卡尔不仅创立了解析集合,将当时完全分离的代数学和几何学联系到一起,还在回答"怎样判断某件事物是真的?"这个哲学问题上迈出了一大步,使后来的一代代哲学家能够轻松起来 ...
- 3D数学基础:图形与游戏开发---随笔一
简介 1.1 什么是3D数学 3D数学是一门和计算几何相关的学科,计算几何则是研究用数值方法解决几何问题的学科.这两门学科广泛应用于那些使用计算机来模拟3D世界的领域. 1.3 阅读本书需要的基础知识 ...
- 3D Math Primer for Graphics and Game Development -- 图形与游戏开发(3D数学基础) (简介)...
3D Math Primer for Graphics and Game Development //z 2014-04-28 13:18:20 L.247'38500 BG57IV3@XCL T20 ...
最新文章
- 马维英坐镇,共话AI赋能生命健康与生物医药
- tableau join 与格式问题
- 关于 AfxSocketInit() 的使用
- 短视频时代不可忽视的幕后功臣竟然是它!
- How does ABAP check table work
- [USACO09FEB]Revamping Trails G
- java 中以||作为split分隔符正确的写法
- Flutter中State深入分析理解
- 单一工作流的执行➕回滚框架初步想法(基于事件驱动模式)
- python与机器学习(四)——线性回归和逻辑斯蒂回归
- XML Schema 简介
- 一个HTTP请求的完整过程
- MATLAB gcf图窗保存图像,黑色背景/透明背景
- Codeforces 1153
- Bable的基本使用
- android能用svg格式,关于Android SVG图形:Android SVG图形 – 将当前PNG文件转换为svg格式的缺点...
- 宽窄巷子,最成都?1038
- 数据库笔试——查出各部门超出部门平均薪资的员工的姓名,薪资,所在部门名称及部门平均薪水...
- 苹果手机桌面找不到计算机,苹果笔记本桌面图标不见了怎么办
- EXCHANGE 2010 修改邮件附件大小限制
热门文章
- linux 光驱 安装 软件下载,brasero linux版
- 【详解】Transfer learning迁移学习 附代码
- PHP在线文字转语音合成源码 基于百度API开发
- python接口自动化12-流量回放神器:mitmproxy(下)
- (附源码)springboot幼儿园管理系统 毕业设计 160901
- ecshop 解密index.php,PHP-威盾PHP加密专家解密算法
- MatalbSimulink Control Tutorials笔记3-PID控制器设计
- 20165331 学习基础和C语言基础调查
- 关于地方金融机构穿透式监管的几个观点
- 如何卸载IDM(Internet Download Manager)