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

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.mzph.cn/pingmian/18608.shtml

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

相关文章

图片怎么批量重命名从1到50?这3个方法一键改名

图片怎么批量重命名从1到50?图片批量重命名从1到50的过程不仅提高了我们处理大量图片文件的效率,还大大简化了命名过程,让我们能更加有条理地管理和存储图片。通过使用各种专业的工具和方法,我们可以轻松实现图片文件的自动化命名…

光纤网络发展(光缆主动监测系统解决方案)

随着光缆网络规模的迅速扩大,如何提高网络运营效益就显得尤为重要。一方面需要及时掌握网络的运行状况,在发生劣化或故障时,能够准确定位,缩短排障历时;同时,一条光缆从设计、施工到维护,积累了…

聊聊异常处理及try-catch-finally块的作用

异常处理(Exceptional Handling),又称为错误处理,是编程语言或计算机硬件中用于处理软件或信息系统中出现的异常状况的一种机制。这些异常状况通常指的是超出程序正常执行流程的某些特殊条件。异常处理提供了处理程序运行时出现的…

服务器上创建搭建gitlab

一、下载与安装 在主目录操作~ 1.使用wget下载 wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.0.1-ce.0.el7.x86_64.rpm 可以在开源软件镜像站选择合适的版本,版本不同页面菜单会稍有差异,此次选…

新人学习笔记之(函数1)

一、函数的概念 1.在JS里面,可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用 2.虽然for循环语句也能实现一些简单的重复操作,但是比较有局限性,此时我们就可以使用JS中的函数 3.函数:就是…

MongoDB CRUD操作:投影Project详解

MongoDB CRUD操作:投影Project详解 文章目录 MongoDB CRUD操作:投影Project详解返回文档的全部字段返回指定的字段和_id字段不输出_id字段指定排除的字段返回内嵌文档中的指定字段禁止内嵌文档中的特定字段数组中内嵌文档的投影聚合表达式的投影字段 默认…

拉取代码报错: SSL certificate problem: self signed certificate

问题描述: 使用SmartGit工具clone项目时,弹出框提示信息为“XXXX,SSL certificate problem: self signed certificate” 问题分析: 提示信息为SSL认证失败,可以关闭SSL的认证 解决方案: 在windows的命…

【Git】Git命令

原文链接:https://github.com/Wscats/CV/issues/31 新建 创建一个新的 git 版本库。这个版本库的配置、存储等信息会被保存到.git 文件夹中 # 初始化当前项目 $ git init# 新建一个目录,将其初始化为Git代码库 $ git init [project-name]# 在指定目录创…

go mod包管理与应用,常见错误排查方法

go mod包管理 go 中 包管理使用go mod 进行包管理 go mod init 项目名称 go mod init myproject_go生成的go.mod中有 module myproject_go 创建目录go_service 其下有两个go文件,go_request.go go_write.go . 根目录下有main.go入口文件。于是项目结构类似于&…

10.时间片调度

一、简介 时间片调度主要针对优先级相同的任务,当多个任务的优先级相同时,任务调度器会在每 一次系统时钟节拍到的时候切换任务,也就是说 CPU 轮流运行优先级相同的任务,每个任务运 行的时间就是一个系统时钟节拍。 二、相关实…

Percona Toolkit 神器全攻略(实用类)

Percona Toolkit 神器全攻略(实用类) Percona Toolkit 神器全攻略系列共八篇,前文回顾: 前文回顾Percona Toolkit 神器全攻略 全文约定:$为命令提示符、greatsql>为GreatSQL数据库提示符。在后续阅读中,…

Linux完整版命令大全(十四)

od(octal dump) 功能说明&#xff1a;输出文件内容。语  法&#xff1a;od [-abcdfhilovx][-A <字码基数>][-j <字符数目>][-N <字符数目>][-s <字符串字符数>][-t <输出格式>][-w <每列字符数>][--help][--version][文件...]补充说明&…

【吊打面试官系列】Java高并发篇 - 怎么唤醒一个阻塞的线程?

大家好&#xff0c;我是锋哥。今天分享关于 【怎么唤醒一个阻塞的线程&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 怎么唤醒一个阻塞的线程&#xff1f; 如果线程是因为调用了 wait()、sleep()或者 join()方法而导致的阻塞&#xff0c;可以中断线程&#xf…

2024年618网购节各大电商超级红包二维码集合

一年一度的电商618网购节又要来了&#xff0c;下面收集了淘宝/京东/拼多多的618红包二维码&#xff0c;手机扫描或识别即可每天领红包&#xff0c;可参考好物分享中的商品下单&#xff1a; 淘宝618超级红包&#xff1a;即日起至2024.6.10&#xff0c;每天可领一次 京东618无门…

【强化学习05】从Q学习到深度Q学习

深度Q学习&#xff08;Deep Q-Learning, DQN&#xff09;是将深度学习与Q学习结合起来的一种强化学习方法&#xff0c;利用神经网络来近似Q值函数&#xff0c;解决传统Q学习在大规模或连续状态空间中的局限性。下面详细解释DQN的机理。 背景知识 Q学习 Q学习是一种值函数法&…

数据分析 - 合并查询

在数据分析中&#xff0c;合并查询&#xff08;Merge Query&#xff09;是一个重要的操作&#xff0c;它允许用户将两个或多个数据集&#xff08;通常是表格&#xff09;基于某些共同属性&#xff08;如ID&#xff09;进行合并&#xff0c;从而获取更丰富的数据视图。以下是关于…

vue+springboot实现echarts数据图统计

①vue项目修改配置 安装依赖&#xff1a; npm i echarts -S 修改路由index.js&#xff1a; import Vue from vue import VueRouter from vue-router import Manager from ../views/Manager.vue // 解决导航栏或者底部导航tabBar中的vue-router在3.0版本以上频繁点击菜单报错…

STL详解(五)——list的使用

文章目录 list的介绍list的使用list的定义方式list的插入和删除push_front和pop_frontpush_back和pop_backinserterase list的迭代器使用begin和endrbegin和rend list的元素获取front和back list的大小控制sizeresizeemptyclear list的操作函数sortspliceremoveremove_ifunique…

「光储充放」一体充电站-一文读懂光储充放充电站

“光储充放”一体充电站作为一种储能充电的新形式渐渐走进人们的生活&#xff0c;全国很多地区都开始陆续投放运营“光储充放”一体充电站&#xff0c;今天的这篇文章&#xff0c;就带大家全面了解“光储充放”这一新型充电站。 头图来源 | 视觉中国 01 政策背景 早在2020年…

集合的交集、并集和差集运算

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 集合最常用的操作就是进行交集、并集、差集和对称差集运算。进行交集运算时使用“&”符号&#xff0c;进行并集运算时使用“&#xff5c;”符号&…