news 2026/10/29 14:27:12

计算机图形学(一)|向量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机图形学(一)|向量

计算机图形学是一门计算机的学科,同时也是一门数学的学科,涉及到大量的数学变换的知识。比如描述空间位置与位移,方向判断与几何计算,构建坐标系与空间变换等数学变换,这些都离不开一个基础的数学概念,那就是向量。那么什么是向量呢?下面我们将对向量及其基础运算进行介绍~

向量

向量是具有大小也有方向的数学量,它不依赖于具体的位置,只描述相对的位移或朝向。它的示意图如下所示

上图是一个二维向量的示意图,它表示的是平面上一点A指向B的向量,可以用有序数对表示

$\vec{a}$ = (x,y)

其中,x 是 x 轴方向上的投影分量, y 是 y 轴方向上的投影分量

注:$x = x_2 - x_1 ,y = y_2 - y_1$

除了二维向量之外还有三维向量,如图所示:

图上表示在一个三维空间中A点向B点的向量,可以用有序三元组表示:

$\vec{a}$ = (x,y,z)

其中, x 是 x 轴方向上的投影分量,y 是 y 轴方向上的投影分量, z 是 z 轴方向上的投影分量

注:$x = x_2 - x_1 ,y = y_2 - y_1, z = z_2 - z_1$

那么怎么计算向量的大小和确认它的方向呢?

向量的大小

向量的模

向量的大小,也称向量的模,即向量的长度,记为||a⃗\vec{a}a||

如果是二维向量,||a⃗\vec{a}a||的计算公式为:

||a⃗\vec{a}a|| =(x2−x1)2+(y2−y1)2\sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}(x2​−x1​)2+(y2​−y1​)2​


如图所示,向量 w 和向量 v 的大小相等,方向相同,所以它们是相等的向量

如果是三维向量,那么||a⃗\vec{a}a||的计算公式为:

∥a⃗∥=(x2−x1)2+(y2−y1)2+(z1−z2)2{\|\vec{a}\|=\sqrt{(x_2-x_1)^2 + (y_2 - y_1)^2 + (z_1 - z_2)^2}}∥a∥=(x2​−x1​)2+(y2​−y1​)2+(z1​−z2​)2​

单位向量

单位向量就是模为1的向量,用于纯粹表示方向,是通过归一化得到
a^=a⃗∥a⃗∥(a⃗为非零向量)\hat{a} = \frac{\vec{a}}{\|\vec{a}\|} \quad (\vec{a}\text{为非零向量})a^=∥a∥a​(a为非零向量)

向量的方向

上面说到,向量既有大小,也有方向,那么什么是向量的方向呢?有两种种表述方法:分别是借助单位向量法和用角度描述法

借助单位向量法

其通用表示方法是借助单位向量a^=a⃗∥a⃗∥\hat{a} = \frac{\vec{a}}{\|\vec{a}\|} \quada^=∥a∥a​,单位向量的模为 1,其坐标就完全代表了原向量a⃗\vec{a}a的方向

为什么说$\hat{a}$就代表了向量的方向呢?

2D 向量 $\vec{a}$ =(3,4) ,模 $|\vec{a}|=5$ ,单位向量 $\hat{a}$ = (35,45\frac{3}{5},\frac{4}{5}53​,54​), 这个坐标就精准描述了 $\vec{a}$ 的方向

因为在常用的直角坐标系里,都有一组两两垂直的单位基向量,它们是描述所有方向的基本单位

比如 2D 向量 $\vec{a}$ =(x,y)可以写成:

$\vec{a}$ = x $\hat{i}$ + y $\hat{j}$

这里的 x 和 y,就是 $\vec{a}$ 在 x 轴和 y 轴上的投影分量,所以上面的 $\hat{a}$ = (35,45\frac{3}{5},\frac{4}{5}53​,54​)用投影分量表示:$\vec{a}$ = $\frac{3}{5}$ $\hat{i}$ + $\frac{4}{5}$ $\hat{j}$ ,意思是在x轴上的份量是 $\frac{3}{5}$ , 在y轴上的分量是 $\frac{4}{5}$

注:$\hat{i}$ 和 $\hat{j}$ 分别是x轴和y轴的单位向量,大小都是 1 ,分享分别平行于x轴和y轴

以上是二维平面的单位向量法表示方向的方法, 三维空间的表示方法又是什么样的呢?原理是相通的~三维单位向量法表示方向法的结论如下:

$\vec{a}$ = x $\hat{i}$ + y $\hat{j}$ + z $\hat{k}$

这里的这里的 x 、y 、z ,就是 $\vec{a}$ 在x轴、y轴和z轴上的投影分量

角度描述法

因为在平面直角坐标系中,可通过向量与坐标轴的夹角来表示方向最常用的是与 x 轴正方向的夹角 $\theta$

若 2D 向量 $\vec{a}=(x,y)$,则 $\theta$ 满足:

cos$\theta$ = $\frac{x}{|\vec{a}|}$

sin$\theta$ = $\frac{y}{|\vec{a}|}$

也可直接用反正切函数计算:

tan$\theta$ = $\frac{sin\theta}{cos\theta}$ , 所以

tan$\theta$ = $\frac{y}{x}$, 得出

$\theta$ = arctan ( $\frac{y}{x}$ )

同时需根据 x、y 的正负判断 $\theta$ 所在象限,那么就可以得出向量的方向了

示例如下:

向量 $\vec{a}$ =(1,1), $||\vec{a}||$ = $\sqrt{2}$,

cos$\theta$ = $\frac{\sqrt{2}}{2}$

所以 $\theta$ = 45°

即方向为与 x 轴正方向夹角 45°

以上是二维平面直角坐标系的通过向量与坐标轴的夹角来表示向量方向的方法

三维空间场景:方向余弦法

3D 空间中向量的方向需要两个角度来确定,常用的是方向余弦

设三维向量$\vec{a}$ = (x,y,z)

与 x、y、z 轴正方向的夹角分别为α\alphaα,β\betaβ,γ\gammaγ, 这三个角的余弦值就叫方向余弦,公式如下:

cosα\alphaα= $\frac{x}{||\vec{a}||}$

cosβ\betaβ= $\frac{y}{||\vec{a}||}$

cosγ\gammaγ= $\frac{z}{||\vec{a}||}$

三个方向余弦满足关系:

cos⁡2α+cos⁡2β+cos⁡2γ=1\cos^2\alpha + \cos^2\beta + \cos^2\gamma = 1cos2α+cos2β+cos2γ=1

向量的运算

通过上述讲解我们已经初步了解向量的大小和方向的基本知识,下面我们基于这些向量的特性进行向量的运算

向量的运算包括线性运算和乘法运算

线性运算

线性运算加法运算,减法运算和乘法运算

加法运算

加法运算满足三角形法则或平行四边形法则,坐标形式下对应分量相加

如:$\vec{a}$=(x1,y1) , $\vec{b}$=(x2,y2), 那么

$\vec{a}$ + $\vec{b}$ = (x1+x2,y1+y2)

减法运算

减法运算等价于加上相反的向量 ,即

$\vec{a}$ - $\vec{b}$ = $\vec{a}$ + (- $\vec{b}$) = (x1-x2,y1-y2)

数乘运算

数乘运算是一个实数 k 与向量 $\vec{a}$ 相乘

模长变为∣k∣· $|\vec{a}|$ ,当k大于0时,方向不变;当k小于0时,方向相反

$\vec{a}$ = (x,y), k · $\vec{a}$ = (k · x1,k · x2)

乘法运算

线性运算是相对直观的运算,乘法运算就不是那么线性了(简单);

乘法运算包括数量积、向量积、混合积

数量积

数量积运算也叫点积运算,其示意图如下所示:

$\vec{a}$ · $\vec{b}$ = $|\vec{a}|$ $|\vec{b}|$ $cos\theta$

运算结果是标量,可以可用于判断两个向量是否垂直,因为如果 $\vec{a}$ 与 $\vec{b}$ 的大小不为0,那么只有 $cos\theta$ = 0;那么 $\theta$ = 90° , 则 $\vec{a}$ ⊥ $\vec{b}$

$\vec{a}$ · $\vec{b}$ = 0 ,则 $\vec{a}$ ⊥ $\vec{b}$

向量积

向量积也叫叉积,仅适用于三维向量,表示为 $\vec{a}$ × $\vec{b}$ ,主要用来求 $\vec{a}$ 和 $\vec{b}$ 所确定的平面的法向量

$\vec{a}$ × $\vec{b}$ 的结果是向量,模长是 $|\vec{a}|$ $|\vec{b}|$ $sin\theta$

其方向垂直于 $\vec{a}$ 和 $\vec{b}$ 所确定的平面, 并且遵循右手定则

混合积

混合积就是点积和叉积相混合的运算,比如三维向量的( $\vec{a}$ × $\vec{b}$ )· $\vec{c}$ ,其几何意义是对应平行六面体的体积,这里我们只是稍作了解~

总结

本文主要简述了向量的基本知识,主要在向量的基本属性和向量的运算两方面展开,向量的基本属性包括向量的大小和方向;向量的运算则包括线性运算和乘法运算,线性运算主要是加法、减法和数乘运算,乘法运算则分为点积、叉积还有混合积,其中点积是用来判断向量是否垂直,叉积是来求法向量

以上就是本文的内容,非常感谢您能花出宝贵的时间观看,如果对您有帮助的话,欢迎点赞收藏~ 如果本文存在不足之处甚至错误的地方欢迎大家在评论区多多批评指出~我随后改正

参考来源:

  1. 《GAMES101: 现代计算机图形学入门(闫令琪)》
  2. learnOpenGL
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 8:53:39

PHP 8.7重磅更新:6大新函数用法揭秘,你还不知道?

第一章:PHP 8.7重磅更新概览PHP 8.7 作为近年来最具突破性的版本之一,带来了多项性能优化、语法增强以及底层架构改进。该版本聚焦于提升执行效率、强化类型系统,并进一步改善开发者体验。尽管仍处于开发预览阶段,但已披露的特性足…

作者头像 李华
网站建设 2026/10/26 9:04:52

头条号内容分发:利用算法推荐覆盖更广受众

头条号内容分发:利用算法推荐覆盖更广受众 在短视频与信息流内容主导用户注意力的今天,一个优质视频能否“出圈”,往往不再取决于创作者粉丝数量的多寡,而是由平台算法是否将其推送给足够多的潜在观众决定。这种从“人找内容”到“…

作者头像 李华
网站建设 2026/10/23 21:07:34

美团无人配送宣传联动?脑洞:用HeyGem生成机器人播报视频

美团无人配送如何“开口说话”?用HeyGem实现低成本数字人播报 在城市街头,美团的无人配送车正安静地穿行于楼宇之间。它们高效、精准,却少了一点“温度”——如果这辆车能主动告诉你“您的餐到了”,甚至在节日里说一句“五一快乐&…

作者头像 李华
网站建设 2026/10/29 2:31:12

华友钴业新能源布局:HeyGem制作非洲矿产开发纪实

华友钴业新能源布局:HeyGem制作非洲矿产开发纪实 —— HeyGem数字人视频生成系统技术解析 在跨国资源型企业加速全球传播的今天,如何高效、安全地输出多语言企业宣传片,成为一大现实挑战。以华友钴业为例,其在非洲的矿产开发项目需…

作者头像 李华
网站建设 2026/10/23 9:59:05

高效协作新利器:AI智能提取API文档+标准化

在云原生与微服务架构时代,API 是系统互联与业务流转的核心载体,其文档的规范性、可用性直接决定研发效率与协作质量。传统 API 文档处理存在格式混乱、转化低效、协作滞后等痛点,严重困扰企业研发团队。 APICLOUD 重磅推出AI 智能提取 API 文…

作者头像 李华
网站建设 2026/10/28 14:25:13

商汤科技SenseTime应用:HeyGem结合人脸识别优化输入

商汤科技HeyGem数字人系统:基于人脸识别的智能视频生成实践 在短视频与在线教育爆发式增长的今天,内容创作者正面临一个核心矛盾:用户对高质量视频的需求越来越高,而传统制作方式的成本和周期却难以匹配这种速度。录制、剪辑、配音…

作者头像 李华