计算机图形学-GAMES101-2

news2025/2/24 9:19:04

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)向量与矩阵

  • 向量的点乘和叉乘都可以写成矩阵形式,点乘需要转置其中一个向量,叉乘需要将向量转换为矩阵。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何防止网站被黑客攻击?黑客是怎样炼成的?

现在的黑客网站可谓是多如牛毛,不管在哪里只要你愿意学,都可以学到一招半式。看过别人的个性签名:卖菜的王大妈是黑客,烤红薯的李大爷也是黑客,对面成人用品店的老板,挖日,还是黑客-_-~!..黑客还真多啊!!!据…

关于对自动化测试的理解:目的与本质!(新手必看)

其实自动化测试很好理解,由两部分组成,“自动化”和“测试”,所以我们要理解自动化测试,就必须理解“自动化”和“测试”,只有理解了这些概念,才能更轻松的做好的自动化测试。其中“自动化”可以想象成通过…

晶飞FLA5000光谱仪.FlaSpec格式解析批处理导出CSV文件

引言 首先说明下晶飞上位机软件存在的问题,实验所采用的FLA5000型号光谱仪,光谱波段从280-970nm,FWHM值为2.4nm。 1、上位机软件中的光谱数据复制功能基本是废的,最多只能到599.9nm,后面的数据全部消失。 2、上位机软…

2023系统分析师---软件工程、系统规划高频错题

系统规划---成本效益分析 评价信息系统经济效益常用的方法主要有成本效益分析法,投入产出分析法和价值工程方法。盈亏平衡法常用于销售定价; 可行性分析 系统规划是信息系统生命周期的第一个阶段,其任务是对企业的环境、目标以及现有系统的状况进行初步调查,根据企业目标…

示波器的数据处理怎么记录?

示波器的使用 - 记录和保存示波器测试结果 安泰测试为您分享如何记录示波器的数据。 "从您把示波器探头连接到器件的那一刻起,信号就开启了一次瞬间即可完成的重大旅程。它必须 跨过五个不同的“模块”,才能完成从器件到示波器,最后返回…

Vue电商项目--开发floor模块

获取floor组件mock数据 开发floor组件 在开发之前,说一下之前存在的一些小毛病 那就是在开发vue中还需要通过dom这种方式来操作元素吗? 我们用ref来做这个 我们先写api 然后去找仓库 getFloorList这个action在哪里触发,是需要在Home路由组件…

计算机组成原理硬件实验 - 计算机组成实验FAQ作业

一、 Quartus II 9.0 (32-Bit) 使用问题: Q1【示例】: 显示【未授权】或者【编译成功不能生成SOF文件】 A1: 在quartus中点击【TOOLS】→【license setup】,在license.DAT中修改“HOSTID”后的字段,设置为“你的电脑最新显卡ID” Q2【示例】…

怎么学习网络安全?这篇文带你从入门级开始学习网络安全

随着网络安全被列为国家安全战略的一部分,这个曾经细分的领域发展提速了不少,除了一些传统安全厂商以外,一些互联网大厂也都纷纷加码了在这一块的投入,随之而来的吸引了越来越多的新鲜血液不断涌入。 不同于Java、C/C等后端开发岗…

网络安全学什么

由于我之前写了不少网络安全技术相关的故事文章,不少读者朋友知道我是从事网络安全相关的工作,于是经常有人在微信里问我: 我刚入门网络安全,该怎么学?要学哪些东西?有哪些方向?怎么选&#xff…

卷麻了,可别再为难软件测试人了

前言 有不少技术友在测试群里讨论,近期的面试越来越难了,要背的八股文越来越多了,考察得越来越细,越来越底层,明摆着就是想让我们徒手造航母嘛!实在是太为难我们这些测试工程师了。 这不,为了帮大家节约时…

最“拼爹妈”的美国大学TOP10,什么是Legacy 录取?

Legacy的直译是遗产的意思,父母和大学的关系,就像家庭的遗产一样,可以传递给孩子一代(有时候,亲哥哥,亲姐姐也会被算作是 legacy)。有的大学祖父母如果是校友,也会算作 legacy。再远…

Docker部署配置Gitlab

Docker部署配置Gitlab 1 参考文档2 Gitlab相关介绍2.1 Gitlab2.2 Git和SVN的区别2.3 Git、Gitlab、GitHub的简单区别 3 搭建Gitlab仓库3.1 拉取镜像3.2 启动容器 4 修改配置文件并配置邮箱4.1 开放linux端口4.2 设置IP、端口4.3 配置邮箱4.4 让配置生效 5 管理员登录Gitlab6 创…

【输变电线路 JL-8C/12反时限电流继电器 报警信号、切除故障 JOSEF约瑟】

系列型号 JL-8C/11反时限电流继电器; JL-8C/12反时限电流继电器; JL-8C/12X反时限电流继电器; JL-8C/21-1反时限电流继电器; JL-8C/21-2反时限电流继电器; JL-8C/21-3反时限电流继电器; JL-8C/21-4反…

在线域名批量查询工具-在什么网站可以挖到老域名

怎么能挖掘到好域名 挖掘到好域名对于网站的建设和SEO排名是非常重要的,因为好的域名可以提高网站的置信度,增加自然引荐的数量,并且可以在搜索引擎排名中获得优势。下面介绍一些优秀的老域名挖掘方法,以及一种常用、免费的老域名…

verflow属性的常用值详解

什么是overflow 在CSS中,overflow是“溢出”的意思,该属性规定当内容溢出元素框时发生的事情,设置内容是否会被修剪,溢出部分是否会被隐藏;例如当属性值设置为“visible”则内容不会被修剪,为“hidden”则内…

PVT(Pyramid Vision Transformer)学习记录

引言与启发 自从ViT之后,关于vision transformer的研究呈井喷式爆发,从思路上分主要沿着两大个方向,一是提升ViT在图像分类的效果;二就是将ViT应用在其它图像任务中,比如分割和检测任务上,这里介绍的PVT&a…

【云原生】k8s 如何运行 Container?

文章目录 引语1、什么是 Pod1.1 简介1.2 Pod 怎样管理多个容器?1.3 如何使用 Pod? 2、Pod 基本操作2.1 查看 Pod2.2 创建 Pod2.3 删除 pod2.4 进入 Pod 中容器2.5 查看 Pod 日志2.6 查看 Pod 的描述信息 3、Pod 运行多个容器3.1 创建 Pod3.2 查看指定容器…

浅谈编译器对构造函数和拷贝构造的优化

一、前言 ①我们先看一段程序&#xff0c;传值传参和传引用传参 #include <iostream> using namespace std;class D { public:D(int a0)//构造:_a(a){cout << "D(int a0)" << endl;}D(const D& d)//拷贝{_a d._a;cout << "D(con…

域名到期时间查询网站-免费版的翼龙老域名挖掘

批量域名过期查询软件 随着互联网的不断发展&#xff0c;域名越来越重要&#xff0c;特别是对于那些热爱SEO优化的网站管理员来说&#xff0c;域名的重要性无法忽视。而对于那些热衷于SEO优化的用户来说&#xff0c;域名过期查询可能是一个必不可少的工具&#xff0c;它可以用…

数据结构初阶--链表OJⅡ

目录 前言相交链表思路分析代码实现 环形链表思路分析代码实现 环形链表Ⅱ思路分析代码实现 复制带随机指针的链表思路分析代码实现 前言 本篇文章承接上篇博客&#xff0c;继续对部分经典链表OJ题进行讲解 相交链表 先来看题目描述 思路分析 这道题我们还是首先来判断一…