计算机图形学入门02:线性代数基础

news/2024/7/20 17:47:35/文章来源:https://blog.csdn.net/qq_26540577/article/details/139241281

1.向量(Vetors)

        向量表示一个方向,还能表示长度(向量的摸)。一般使用单位向量表示方向。

        向量加减:平行四边形法则、三角形法则。比卡尔坐标系描述向量,坐标直接相加。

     1.1向量点乘(Dot product)

        向量点乘也可以交向量点积,向量的数量积公式:a*b=|a||b|cosθ a,b表示向量,θ表示向量a,b共起点时的夹角,很明显向量的数量积表示数,不是向量。

         性质:

        在笛卡尔坐标下:

        二维向量点乘

        三位向量点乘

        向量点乘的作用:

         1.能够快速获得两个方向的夹角(例如光源与表面夹角的余弦),通过夹角也可判断两个向量的接近程度。

         2.求一个向量在另一个向量的投影。

          投影在图形学中的好处:

                1.测量两个方向的距离 

                2.分解一个向量

                3.确定向前/向后 

                如果结果是0到1,那么方向相同,如果是-1到0则方向相反,如果等于0则垂直。

       1.2向量叉乘(Cross product)

                向量叉乘又称向量积,与点积不同,它的运算结果是一个向量而不是一个标量。

                叉乘的属性:

                        1.向量积与两个初始向量正交。垂直。

                        2.通过右手法则求得。可得不满足交换率,如果要使用交换律,其中一个向量要加一个负号。

                        3.建立三维空间直角坐标系。知道两个x,y轴,就可以算出z轴。如果x叉乘y等于z,那么就可以判定坐标系为右手坐标系。OpenGL使用右手坐标系,DirectX使用左手坐标系。

                 叉乘的运算:

                在笛卡尔坐标系下:

                用矩阵表示(后面会讲):

                叉乘的作用:

                        1.判定左右。a向量叉乘b,使用右手螺旋定则,如果大拇指向上且四指方向从a转向b,则b在a的左边。

                        2.判定内外。如下图A-B-C,依次做运算,AB向量叉乘AP,BC向量叉乘BP,CA向量叉乘CP,发现AP,BP,CP,分别在AB,BC,CA的左边,即可以判定,P点在三角形的内部;如果以A-C-B方向,都在其右边,同样可以判定在三角形内部。即不论顺序,P点的三个结果都是同一侧,则P点在三角形的内部。在图形学的光珊化阶段,用来判断像素点是否在三角形内部,从而给像素颜色。

1.3标准正交坐标系

        定义三个单位向量u、v、w,并且都互相垂直,也就是点乘结果都为0,给u和v叉乘结果为w,对应x与y叉乘等于z,得到一个右手的三维直角坐标系。

        好处是可以把任意向量都分解到三个轴去,通过投影计算。由于都是单位向量,所以p分解到三个轴上后,p向量投影到u向量的点乘乘以u方向,同理获取v上的投影方向和w上的投影方向,并且三个投影方向加起来等于p原向量。

2.矩阵(Matrices) 

      矩阵是一个数学概念,它是由一组数排成的矩形阵列,通常用方括号或圆括号来表示。数字数组(m行,n列),如下图所示为一个3行2列的矩阵。

2.1矩阵乘积

        矩阵与一个常数相乘比较简单,直接矩阵里每个元素分别乘以这个常数。这里直接了解矩阵与矩阵相乘。

       ​ 矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。例如第一个为m行n列的矩阵,第二个矩阵是n行p列的矩阵,那么相乘的结果是一个m行p列的矩阵。

        设A为的矩阵,B为的矩阵,那么称的矩阵C为矩阵A与B的乘积,记作,其中矩阵C中的第i行第j列元素可以表示为:

如下图所示:

基本性质:

        1.满足结合法和分配法:

        2.不满足交换律,即AB!=BA

2.2矩阵与向量乘

        可将向量视为列矩阵(m x 1),列数为1。这是变换点的关键,例如将(x,y)向量变换为(-x,y)的向量,做镜像处理。可以如下操作。

2.3矩阵的加减运算

        矩阵加减运算,涉及将两个矩阵中对应位置的元素进行加法或减法操作。这种运算的前提是参与运算的两个矩阵必须具有相同的行数和列数,即它们是同型矩阵。矩阵的加法运算可以简单地理解为将两个矩阵中对应位置的元素相加,而减法运算则是对应位置的元素相减。例如,如果矩阵A=[1 2]和B=[2 3],那么A+B=[1+2 2+3]=[3 5]。

 2.4矩阵的转置

        将矩阵的行列互换得到的新矩阵称为转置矩阵,转置矩阵的行列式不变。

       性质:

2.5单位矩阵和逆矩阵

        单位矩阵:

        在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,这种矩阵被称为单位矩阵。它是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1。除此以外全都为0。 ​

        根据单位矩阵的特点,任何矩阵与单位矩阵相乘都等于本身。

        逆矩阵:

        如果第一个矩阵乘以第二个矩阵的结果为一个单位矩阵,那么另外一个矩阵就是第一个矩阵的逆矩阵。也就是说一个A矩阵乘以它的逆矩阵就能求出单位矩阵I。

逆矩阵的一个性质与转置的性质比较像,如下:

2.6矩阵形式的向量乘法

        向量的点乘表示:

        前面说过可以将向量视为一个列数的矩阵,那么两个向量的点乘可视为两个矩阵的相乘,又因为矩阵的相乘特性,所以必须将一个向量变成转置。如下:

        向量的叉乘表示:

        向量的叉乘可以写成一个向量对应的矩阵乘以另一个向量。

        通过矩阵乘法规则推理得出下面结果。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

质量源于设计QbD培训的内容有哪些?

质量源于设计QbD培训的内容丰富而深入,旨在帮助企业深入理解并应用QbD理念,提升产品质量和客户满意度。以下是质量源于设计QbD培训的主要内容: 首先,培训将详细介绍QbD的基本概念、核心内容和实施流程。QbD是一种集成的方法&#…

快速版-JS基础01书写位置

1.书写位置 2.标识符 3.变量 var:声明变量。 (1).变量的重新赋值 (2).变量的提升 打印结果:console.log(变量名) 第一个是你写在里面的。 第二个是实际运行的先后之分,变量名字在最前面。变量…

天津某高校 IBM V7000 技术存储数据恢复成功

2024年5月初,天津某大学的浪潮存储系统 AS5500G2(48)出现数据卷无法读取的问题。存储系统的故障为该高校相关系统数据访问造成重大影响,负责人急切希望能够在最短时间内排除故障并恢复受损数据。 客户设备报错信息1 客户设备报错信息2 充分理解客户并满…

1131. 绝对值表达式的最大值

1131. 绝对值表达式的最大值 原题链接:完成情况:解题思路:参考代码:_1131绝对值表达式的最大值 错误经验吸取 原题链接: 1131. 绝对值表达式的最大值 https://leetcode.cn/problems/maximum-of-absolute-value-expr…

linux安装mysql后,配置mysql,并连接navicate软件

Xshell连接登陆服务器 输入全局命令 mysql -u root -p 回车后,输入密码,不显示输入的密码 注意mysql服务状态,是否运行等 修改配置文件my.cnf,这里没找到就找my.ini,指定有一个是对的 find / -name my.cnf 接下…

灵狐剪辑软件,视频AI剪辑+去水印裁剪+视频 分割+批量合成+智能混剪(教程+软件)

1.介绍: 【灵狐剪辑】是一款视频编辑工具,能够帮助用户轻松地制作出专业级别的视频作品。这款软件拥有丰富的视频编辑功能,包括剪辑、合并、添加特效、调整音频等,让用户能够充分发挥创意,打造出独具特色的视频内容。…

147.栈与队列:滑动窗口最大值(力扣)

代码解决 class Solution { private:class MyQueue{public:deque<int> que;// 删除队列中的元素&#xff0c;如果该元素等于队列的front// 这是为了保持队列中元素的正确性void pop(int val){if(!que.empty() && val que.front()){que.pop_front();}}// 添加元素…

Prometheus Operator创建告警规则并接入钉钉报警

prometheus之钉钉报警 前言1. 添加prometheus报警规则1.2 添加自定义报警规则文件 2. 配置钉钉报警2.2 部署dingding插件 3. 编写alertmanager配置文件 前言 在kubenetes上安装了kube-promethues&#xff08;包含Prometheus Operator&#xff09;,程序正常跑起来了&#xff0c…

企业微信H5授权登录

在企业中如果需要在打开的网页里面携带用户的身份信息&#xff0c;第一步需要获取code参数 如何实现企业微信H5获取当前用户信息即accessToken&#xff1f; 1.在应用管理--》创建应用 2.创建好应用&#xff0c;点击应用主页-》设置-》网页-》将授权链接填上去 官方文档可以看…

3W 1.5KVDC 隔离 宽范围输入,双隔离双输出 DC/DC 电源模块——TPD-3W系列

TPD-3W系列产品是专门针对线路板上分布式电源系统中需要产生一组与输入电源隔离的双隔离双电源的应用场合而设计。该产品适用于&#xff1a;1&#xff09;输入电源的电压变化范围≤2&#xff1a;1 &#xff1b;2&#xff09;输入输出之间要求隔离≤1500VDC&#xff1b;3&#x…

unity回到低版本报错解决

用高版本2022打开过后的再回到2020就报了一个错。 报错如下&#xff1a; Library\PackageCache\com.unity.ai.navigation1.1.5\Runtime\NavMeshSurface.cs 看了一下是Library&#xff0c;然后我删除了整个Library文件夹&#xff0c;重启启动生成Library&#xff0c;然后还是…

Linux 查找命令的操作,学完效率瞬间翻倍?

可以很肯定地说&#xff0c;find 命令是 Linux 运维必须熟知的操作之一。 让我们看一道题&#xff1a; 如果你的 Linux 服务器上有一个名为 .logs 的目录&#xff0c;如何删除该目录下最后一次访问时间超过一年的日志文件呢&#xff1f; 这种情况很常见&#xff0c;但令人惊讶…

Oracle-修改用户名

1、项目背景 需要将导入一份最新的用户数据在tbl用户上&#xff0c;但需要将原来的tbl用户数据保留并能实现两个用户的比对。 2、解决思路 思路一&#xff1a;1&#xff09;新建用户tbl_feng,导入数据&#xff1b;2&#xff09;将两个用户换名称 3&#xff09;比对 思路二&…

关于解决Qt在安装的时候没有勾选sources组件的方法

关于解决Qt在安装的时候没有勾选sources组件的方法 一、引言 在安装数据库连接到qt的时候发现没有sources文件夹&#xff0c;原来是安装的时候没有勾选sources组件&#xff0c;发现问题后找到了维护qt组件的安装方式&#xff0c;特此记下来 二、分析原因 首先在安装的时候就…

Java并发面试题,多线程通关秘籍

【知识点记录】- 不能不知道的知识点 &#x1f604;生命不息&#xff0c;写作不止 &#x1f525; 继续踏上学习之路&#xff0c;学之分享笔记 &#x1f44a; 总有一天我也能像各位大佬一样 &#x1f3c6; 博客首页 怒放吧德德 To记录领地 &#x1f31d;分享学习心得&#xf…

上海冠珠旗舰总店盛装开业暨冠珠瓷砖中国美学设计巡回圆满举办

上海&#xff0c;这座融合了东西方文化的国际化大都市&#xff0c;不仅是中国的时尚中心&#xff0c;也是全球潮流的汇聚地。在这里&#xff0c;古典与现代交织&#xff0c;传统与前卫并存&#xff0c;为传统色彩与现代设计的融合提供了得天独厚的条件。 5月25日&#xff0c;上…

拉普拉斯IPO:新能源产业快速发展,为低碳转型注入强劲动力

近年来&#xff0c;我国新能源产业快速发展&#xff0c;为全球绿色低碳转型注入强劲动力。国际人士认为&#xff0c;中国新能源产业快速发展&#xff0c;得益于超大规模市场优势、完整的工业体系和丰富的人力资源&#xff0c;得益于企业对研发创新的巨大投入&#xff0c;我国市…

linux线程,线程控制与线程相关概念

线程概念 线程这个词或多或少大家都听过&#xff0c;今天我们正式的来谈一下线程&#xff1b; 在我一开始的概念中线程就是进程的一部分&#xff0c;一个进程中有很多个线程&#xff0c;这个想法基本是正确的&#xff0c;但细节部分呢我们需要细细讲解一下&#xff1b; 什么…

C++ Primer 第五版 第十三章 拷贝控制

当定义一个类时&#xff0c;我们显式地或隐式地指定在此类型的对象拷贝、移动、赋值和销毁时做什么。一个类通过定义五种特殊的成员函数来控制这些操作&#xff0c;包括&#xff1a;拷贝构造函数&#xff08;copy constructor&#xff09;、拷贝赋值运算符&#xff08;copy-ass…

9、C#【进阶】特性

特性 文章目录 1、特性概念2、自定义特性 Attribute3、特性的使用4、限制自定义特性的使用范围5、系统自带特性1、过时特性2、调用者信息特性3、条件编译特性4、外部dll包函数特性 1、特性概念 特性是一种允许我们向程序的程序集添加元数据的语言结构 它是用于保存程序机构信息…