计算机图形学入门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的过程不仅提高了我们处理大量图片文件的效率,还大大简化了命名过程,让我们能更加有条理地管理和存储图片。通过使用各种专业的工具和方法,我们可以轻松实现图片文件的自动化命名…

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

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

服务器上创建搭建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 可以在开源软件镜像站选择合适的版本,版本不同页面菜单会稍有差异,此次选…

10.时间片调度

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

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

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

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

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

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

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

vue+springboot实现echarts数据图统计

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

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

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

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

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

基于振弦采集仪的岩土工程振弦监测技术研究与应用

基于振弦采集仪的岩土工程振弦监测技术研究与应用 岩土工程振弦监测技术是一种基于振弦采集仪的测试方法,用于对岩土体的力学特性进行监测和分析。振弦采集仪是一种先进的测试设备,能够准确测量岩土体中的振动响应,并通过分析振动信号来获取…

学习笔记——数据通信基础——数据通信网络(拓扑结构)

网络拓扑 网络拓扑(Network Topology)是指用传输介质(例如双绞线、光纤等)互连各种设备(例如计算机终端、路由器、交换机等)所呈现的结构化布局。 1、网络拓扑形态 星型网络∶所有节点通过一个中心节点连接在一起。 优点∶容易在网络中增加新的节点。通信数据必须经过中心节点…

python-数据可视化(总)

python-数据可视化 ** 数据可视化 指的是通过可视化表示来探索数据,它与数据挖掘**紧密相关,而数据挖掘指的是使用代码来探索数据集的规律和关联。数据集可以是用一行代码就能表示的小型数字列表,也可以是数以吉字节的数据 最流行的工具之一…

HTTP协议的基本了解

一、HTTP-概述 HTTP:Hyper Text Transfer Protocol(超文本传输协议),规定了浏览器与服务器之间数据传输的规则。 http是互联网上应用最为广泛的一种网络协议 。http协议要求:浏览器在向服务器发送请求数据时,或是服务器在向浏览器…

7 步解决Android Studio模拟器切换中文输入

详细步骤传送地址:Android Studio 模拟器切换中文输入 目录 01 问题概述 02 模拟器的调试 01 问题概述 大家在使用Android Studio 软件进行项目演示时总会遇到一些输入框需要输入中文汉字的情况,由于AS自带的模拟器基本都是英文,这时就有同…

Dubbo生态之深度分析sentinel的流量控制

1. 深度了解sentinel限流规则参数的含义 博客Dubbo生态之sentinel限流-CSDN博客中有dubbo集成sentinel的demo演示 在sentinel中,限流的直接表现形式就是,在执行Entry nodeA SphU.entry(resourceName)的时候抛出FlowException异常,FlowExce…

Linux学习笔记(二)

一、Linux文件目录 1.命令:tree -L 1 2.挂载命令(例如U盘,需要挂载之后才能访问): mount /dev/cdrom /mnt ls /mnt 3.查看登录信息: last / lastlog 4.修改/查看网络信息 vi /etc/sysconfig/netw…

【吊打面试官系列】Java高并发篇 - 死锁的原因?

大家好,我是锋哥。今天分享关于 【死锁的原因?】面试题,希望对大家有帮助; 死锁的原因? 1、是多个线程涉及到多个锁,这些锁存在着交叉,所以可能会导致了一个锁依赖 的闭环。 例如: …

计算机网络7——网络安全1 概述与加密

文章目录 一、网络安全问题概述1、计算机网络面临的安全性威胁2、安全的计算机网络3、数据加密模型 二、两类密码体制1、对称密钥密码体制2、公钥密码体制 随着计算机网络的发展,网络中的安全问题也日趋严重。当网络的用户来自社会各个阶层与部门时,大量…

文件跨境传输法律管控越来越严格,企业该如何有效应对?

文件跨境传输已经成为非常普遍的业务需求,企业在世界各地的总分支处、合作伙伴,客户间开展业务时,必须基于数据的跨境流转而展开。 但随着世界各国对数据安全的重视,文件跨境传输也日趋严格,各国在法律法规上均出具了更…