计算机图形学入门(一)-线性代数部分知识1

2023-11-15

本部分主要介绍了向量的点乘与叉乘在图形学中的基本应用,介绍了图形学中常用的2D矩阵变换,例如缩放、对称、切变换、旋转、平移、逆变换、组合变换和分解变换。还有在图形学中为了简化操作而采取的添加维度的方法。

主要的学习过程来自下面的视频,本文只会有主要的基础内容,默认一些知识大家是掌握的,该精简的地方一定会精简。原视频非常好,我会在文章中插入视频的具体节点位置,更详细的内容可以观看原视频,教程网站上有课件和作业。个人也会在后续的学习过程中不断的向文章做补充,有问题大家可以在评论区探讨。文章的最后有一些小问题可以尝试回答,有些问题比较重要。

GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibili​www.bilibili.com/video/BV1X7411F744?p=2&share_source=copy_web正在上传…重新上传取消​https://link.zhihu.com/?target=https%3A//www.bilibili.com/video/BV1X7411F744%3Fp%3D2%26share_source%3Dcopy_web

目录

向量

点乘(dot product)在图形学中的应用

叉乘(cross product)在图形学中的应用

矩阵

2D矩阵变换

问题小测试


向量

向量的定义、加减、模、点乘、叉乘的计算等概念。视频位置02-07:48。其实向量部分知道在什么地方用、怎么用就足够了。

点乘(dot product)在图形学中的应用

基本上都是高中常用知识,就只总结下应用。

1.找俩向量的夹角、找一个向量在另一个向量上的投影。视频位置02-21:49

2.判断垂直、判断向前还是向后。本质上就是求夹角,但特别常用。视频位置02-26:11

3.分解向量。本质是找投影。视频位置02-24:56

叉乘(cross product)在图形学中的应用

叉乘注意一点就是看是左手还是右手坐标系,原视频都是右手。视频位置02-30:15

1.用两个给定的坐标轴生成第三个坐标轴

例子:摄像机(观察者)坐标系中就以面朝方向为-Z轴,向上为Y,来建立了坐标系。

另一常用例子:求法线。知道一个方向的微分,逆时针旋转90度就得到法线。视频位置P10-22:43

2.判断左右

如在平面xoy上的两向量,通过叉乘结果看Z的正负就能判断。

3.判断内外最常用,随处可见。视频位置02-39:00

一定要收尾相连的向量去和与P形成的向量叉乘得到向量,都是同向说明点在三角形内

矩阵

矩阵的基本运算,一些性质。

2D矩阵变换

视频位置03-06:18

1.缩放变换

2.对称变换

3.切变换

切变换

4.旋转(注意事项,只要使用旋转变换矩阵一定是围着原点,切逆时针为正方向

旋转矩阵

以上的几种都是线性变换。视频位置03-23:51

线性变换的形式

5.平移变换不是线性变换。视频位置03-26:22

tx,ty为平移变换

但这样的形式后面总是带着尾巴,对于运算过程很麻烦,我们并不想让平移变换变成一种特例。因此我们引入一个新的维度来简化过程

我们让2D的点变为变为  (x,y,1)^{T}  ,2D的向量变为(x,y,0)^{T}  。至于为什么这么变化,并不是经过复杂的数学过程推导出来的,就一个原因,好用且没错。视频位置03-32:30。

点经过平移后,位置正确。向量经过平移后应该没有变化。

6.逆变换

a经过M变换到b,b经过  M^{-1}(M的逆变换)得到a。

7.组合变换

a先经过X变换到b,b经过Y变换到c,c经过Z变换到d \Leftrightarrow d=Ma(M=ZYX)

8.分解变换

先逆时针旋转45度,再向右平移,实际上有无穷多的方法可以达到

问题小测试

1.一个向量与自己点乘结果是什么,叉乘呢?

2.摄像机(观察者)坐标系中就以面朝方向为什么是-Z轴而不是Z轴呢?向上为Y,右手坐标系下X轴方向是哪里?

3. 如果有旋转变换 R_{\Theta },那么 R_{\Theta }^{T}=R_{\Theta }^{-1}怎么得出来的,提示可以将-θ代入,这是直接求旋转逆变换的方法。

3.表示2D的点(3,3,1)和(9,9,3)是一个点吗?

4.在经过将2D的点或向量添加一个维度(1和0)后。向量加向量是__?点减点是___? 点加向量是___?点加点是___?

5. 矩阵部分7.组合变换中,怎么从d变换到a,即求 M^{-1} 。

6.如果想让一个并不靠近原点的物体围着自己的中心旋转,用分解变换怎么实现。

7.2D矩阵变换的7种类型,3D变换都能用吗?

下一部分

计算机图形学入门(二)-线性代数部分知识2视图变换和投影变换_酷月千里的博客-CSDN博客icon-default.png?t=LA92https://blog.csdn.net/weixin_45314475/article/details/121736622?spm=1001.2014.3001.5501总目录

计算机图形学入门(总目录)_酷月千里的博客-CSDN博客icon-default.png?t=LA92https://blog.csdn.net/weixin_45314475/article/details/121876845?spm=1001.2014.3001.5502

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机图形学入门(一)-线性代数部分知识1 的相关文章

随机推荐

  • 翻译 第11章 of IEEE Std 1666-2011 IEEE Standard for Standard SystemC Language Reference Manual

    11 TLM 2 0 core interfaces 11 TLM 2 0 核心接口 In addition to the core interfaces from TLM 1 TLM 2 0 adds blocking and non b
  • 如何把笔记本做台式机的副屏(一套键鼠控制两台电脑)

    通过一套键鼠控制两台电脑 前提 安装所需的软件 一 简介 二 安装 2 1 小技巧 前提 两台电脑在同一个局域网内 并且均为windows操作系统 例如两台电脑链接的同一个WIFI 或者笔记本无线连接路由 台式机插网线链接路由 只有在同一个
  • 史上最全排序算法全面总结

    考察点 在信息学奥赛初赛中对于排序算法的考察主要体现在以下几方面 1 时间复杂度 2 稳定性 3 最坏情况下移动次数 4 移动次数与关键字顺序关系 先看熟记知识点 1 关于稳定性 假定在待排序的记录序列中 存在多个具有相同的关键字的记录 若
  • 指针空间的申请和释放

    http blog csdn net netanimals article details 6530787
  • 若依跨域解决

    发现接口取消权限校验之后 跨域调用还是失败了 若依本身有跨域配置 注释掉换为新的 若依原跨域配置 ResourcesConfig 中 跨域配置 Bean public CorsFilter corsFilter CorsConfigurat
  • matlab中常用符号

    在使用MATLAB的过程中 经常需要对输出图形中的变量进行标注 其中经常遇到的难题就是如何标注各种上标 下标 斜体 黑体 箭头 上圆圈 正负号等特殊符号 以及如何标注特殊的数学符号 这里第一机电网给大家总结一下 希望对大家有用 一 MATL
  • 奥林巴斯新微单E-M5II曝光:合金机身可防水

    通常单反相机是专业摄影师的最佳工具 但是对于普通消费者来说 既要拥有专业的图像质量 又不想负担单反相机沉重的质量 就成为了基本的要求 因此 微单相机就在这种情况下应运而生 如果你还没决定好选择哪一款微单 那么奥林巴斯即将推出的这款OM D
  • Android APP性能及专项测试

    Android篇 1 性能测试 Android性能测试分为两类 1 一类为rom版本 系统 的性能测试 2 一类为应用app的性能测试 Android的app性能测试包括的测试项比如 1 资源消耗 2 内存泄露 3 电量功耗 4 耗时 5
  • 【C++ 进阶】继承

    一 继承的定义格式 基类又叫父类 派生类又叫子类 二 继承方式 继承方式分为三种 1 public继承 2 protected继承 3 private继承 基类成员与继承方式的关系共有9种 见下表 虽然说是有9种 但其实最常用的还是红框里的
  • 随心所欲Do whatever you want——Minecraft

    Minecraft是一款沙盒类电子游戏 开创者是马库斯 阿列克谢 泊松 由微软旗下Mojang Studios维护 从2017年开始 中国版 我的世界 由网易游戏代理 目标 Minecraft着重于让玩家去探索 交互 并且改变一个由一立方米
  • Github使用学习笔记(二)

    第二节任务 如何把我在本地上的工程上传到github上已经建好的仓库中 一 在本地目录下创建我的版本库 mkdir learngit cd learngit git init ls ah 首先创建一个空目录 目录名为learngit 之后进
  • 【华为OD】

    目录 一 题目描述 二 输入描述 三 输出描述 备注 用例 四 题目解析 五 Java玩法 六 JavaScript玩法 一 题目描述 一个图像有 n 个像素点 存储在一个长度为 n 的数组 img 里 每个像素点的取值范围 0 255 的
  • 网站流量统计

    常使用web服务器的朋友大都了解 一般的web server有两部分日志 一是运行中的日志 它主要记录运行的一些信息 尤其是一些异常错误日志信息 二是访问日志信息 它记录的访问的时间 IP 访问的资料等相关信息 现在我来和大家介绍一下利用t
  • 高级定时器 tim1 tim8 一般中断配置,以防以后忘记

    void Timer8 Init void TIM TimeBaseInitTypeDef TIM TimeBaseStructure NVIC InitTypeDef NVIC InitStructure RCC APB2PeriphCl
  • C++设计模式——单例模式 (一)

    单例模式 一个类只能创建一个对象 单例模式是C 中常用的一种设计模式 熟悉Qt的朋友肯定清楚QApplication实际也是采用的单例模式 并且为用户提供了一个全局的指针对象 qApp 我们先看看Qt中对于单例的实现 define qApp
  • Android NDK是什么

    官方给出的答案 Android NDK 是一套允许您使用原生代码语言 例如 C 和 C 实现部分应用的工具集 在开发某些类型应用时 这有助于您重复使用以这些语言编写的代码库 深入的学习 https developer android goo
  • 13 款炫酷的 MySQL 可视化管理工具!好用到爆!!

    MySQL 的管理维护工具非常多 除了系统自带的命令行管理工具之外 还有许多其他的图形化管理工具 工具好用是一方面 个人的使用习惯也很重要 这里介绍 13 款 MySQL 图形化管理工具 供大家参考 1 DBeaver DBeaver 是一
  • 分数运算(类+构造)

    题目描述 用C 定义和实现一个分数类 并根据要求完成分数对象的运用 分数类包含分子和分母两个属性 操作包括 各属性的get方法 构造函数 初始化分子分母 相加运算 该运算接收两个分数对象的分子和分母 然后进行分数相加 结果保存在自己的分子和
  • 利用 ViewBinding 和反射封装的基类,从此再也不用 findViewById 了

    code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群 作者 段颖超丨乐拼链接 https www jianshu com p ea395a83c666声明 本文已获段颖超丨乐拼授权发表 转发等请联系原作者授权 今
  • 计算机图形学入门(一)-线性代数部分知识1

    本部分主要介绍了向量的点乘与叉乘在图形学中的基本应用 介绍了图形学中常用的2D矩阵变换 例如缩放 对称 切变换 旋转 平移 逆变换 组合变换和分解变换 还有在图形学中为了简化操作而采取的添加维度的方法 主要的学习过程来自下面的视频 本文只会