计算机图形学中向量点乘和叉乘的用途_图形学笔记(一):基础知识
从这便文章开始整理学习到的计算机图像学相关知识,原则是只写我没在网上找到清楚解释的内容,如果有很好的文章介绍相关内容,我会直接把链接贴上。
首先弄清 Computer Graphics和 Computer Vision的关系和区别
大致上讲,CG是图像和视频合成的工具和机制,而CV通常用于分析和提取视频和图像的语义内容,这两个领域的技术没有明显的界限,但是目的稍有不同。
线性代数基础
- 向量积 Vector Cross product
关于Cross product维基百科解释的非常详细。需要特别注意的是两个向量u和v在三维空间的叉乘的几何意义
- 数量积 Vector Dot Product
关于Dot Product 的相关知识。
线性代数变换
- 仿射组合 The affine combination
首先先了解一下什么是仿射变换.
如何通俗地讲解「仿射变换」这个概念? - 马同学的回答 - 知乎
而仿射函数实际上就是表示这一变换过程的函数,一般形式是,是一个矩阵,是一个向量,是一个向量。仿射组合的概念更加抽象,可以通过下面这个例子了解一下两个二维向量的仿射组合:
仿射组合为什么代表一条线? - 电猫哥electricat的回答 - 知乎
这个例子证明了两个二维向量的仿射组合可以代表一条直线,可以发现仿射组合其实是对于给定向量与一组权重的线性变换,而且必须满足,即。推广到个向量定义如下:(未完,这部分以后会补张图...)
- 重心坐标 Barycentric Coordinates
上面介绍的内容其实隐含了一个前提:坐标系类型已确定。在数学中,坐标系的类型很多,例如齐次坐标系(homogeneous coordinates or projective coordinates),和笛卡尔坐标系(Cartesian coordinate system),在不同的坐标系下,对事物的描述方法和变换自然是不同的。各个坐标的关系可以参考下面的文章:
从带号面积到坐标系的建立 - PeaucellieRay的文章 - 知乎
这里主要介绍一下重心坐标系,找到一片讲的比较清楚的文章。
重心坐标(Barycentric coordinates) - 杨超的文章 - 知乎
通过上文其实我们可以发觉重心坐标的表示方法就是点的仿射组合,而就是组合权重。 值得注意的是,上文的三角形其实是放在一个仿射空间(affine space)里的。维基百科这样描述仿射空间:仿射空间是没有起点只有方向大小的向量所构成的向量空间。
我的理解是仿射空间就是没有原点的线性空间,这里就不展开讨论了。
回到重心坐标的话题上来,通过结合仿射组合,有下面的定义:
通过多个点确定一个坐标确实感觉很费劲,但是如上个链接里的文章所说,这个坐标系大有可为,在计算机图形学中需要使用一个非常重要的技术——线性插值,就用到重心坐标,这个以后的文章一改也会提到。
- 凸包 Convex Hulls
凸包的几何意义是给定空间一堆离散的点,计算能够包含这些点的一个凸多边形,如下图可以用凸包讲general mesh的点精简成convex mesh,在碰撞检测中省去了大量内存。
凸包的表示方法如下,可以发现可以利用仿射组合保证凸性(Convexity),原因暂不讨论。
- 仿射映射 Affine mappings
计算机图形学中向量点乘和叉乘的用途_图形学笔记(一):基础知识相关推荐
- 计算机图形学中向量点乘和叉乘的用途_向量的点乘和叉乘(转)
向量:u=(u1,u2,u3) v=(v1,v2,v3) 叉积公式:u x v = { u2v3-v2u3 , u3v1-v3u1 , u1v2-u2v1 } 点积公式:u * v = u1v1+u2 ...
- 计算机图形学数学基础——向量点乘和叉乘
简单总结闫老师图形学课程中向量点乘和叉乘及其在图形学中的意义 1. 向量点乘和叉乘 1.1 向量点乘 1.2 向量叉乘 1.3 向量叉乘的意义 1.3.1 判断向量左右位置 1.3.2 判断点的内外位 ...
- html中table标签、tr标签、th标签、td标签的基础知识
html中table标签.tr标签.th标签.td标签的基础知识 表格的结构 表格的基本标签 表格标签的基本属性 table标签的基本属性 tr标签的基本属性 th和td标签的基本属性 表格高级样式设 ...
- 机器学习中向量的点积和叉乘含义梳理
定义 概括地说,向量的内积(点乘/数量积).对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,如下所示,对于向量a和向量b: a和b的点积公式为: 这里要求一维向量a和向量b的行列 ...
- 计算机编程中向量,什么是节点向量
平面向量 1.基本概念: 向量的定义.向量的模.零向量.单位向量.相反向量.共线向量.相等向量. 2. 加法与减法的代数运算: (1) . (2)若a=( ),b=( )则a b=( ). 向量加法与 ...
- html中如何实现选择存储路径的功能_HTML是Web前端的基础知识,刚入门的你真的学对了吗?...
HTML 概念 前端最核心的技术 HTML + CSS + javascript HTML - 结构 - 骨架 CSS - 样式 - 效果 JAVASCRIPT - (用户)行为 - 做的事情 超文本 ...
- 控制系统中的AI、AO、DI、DO是什么意思——控制系统基础知识
前言 控制系统中AI.AO.DI.DO是集散控制系统中模块上常见的一些基本标注,好处就是便于分清什么类型量的设备,方便前期的产品选型及后期的维修与保养. 同时将现场模拟量仪表和开关量设备等进行 ...
- python中字典的输出序列_python3:序列_字典(常用基础知识)
#字典: '''字典:无序的.可变的序列,也称关联数组,或散列表 ①格式{键:值} ②通过键读取元素 ③字典是任意对象的无序集合 ④字典可任意嵌套,如元素可以为列表.字典.列表的列表等 ⑤字典的键必须 ...
- 由任意二叉树的前序遍历序列和中序遍历序列求二叉树的思想方法_算法与数据结构基础 - 二叉树(Binary Tree)...
二叉树基础 满足这样性质的树称为二叉树:空树或节点最多有两个子树,称为左子树.右子树, 左右子树节点同样最多有两个子树. 二叉树是递归定义的,因而常用递归/DFS的思想处理二叉树相关问题,例如Leet ...
最新文章
- Django源码分析3:处理请求wsgi分析与视图View
- CentOS-6.4无线上网命令行配置
- boost::geometry:::detail::overlay::get_clusters用法的测试程序
- 记一次ubuntu阿里的下载源的问题
- php断点调试的几种方法
- python语言学习零基础教学视频_Python告白小白视频教程(零基础入门)
- 分布式系统:一致性模型
- 多任务场景下单线程异步多线程多进程
- 关于vs2008设计视图假死的原因及解决方案总结
- 批量文件替换_CAD图形文件中如何快速批量替换文字?【AutoCAD教程】
- IOS AppUI规格指南
- fastreport picture 放入data展示_博客 城市访问量统计并且通过Echarts展示
- python爬裁判文书网_记录用web scraper爬取裁判文书网的文书列表信息以及批量下载word文书...
- IO流(包含常用IO体系图)
- js 中编码(encode)和解码(decode)的三种方法(传递是特殊符号丢失问题,如‘+’)
- AVCON6 系统管理平台 download.action 任意文件下载漏洞
- 关于音视频测试的一点建议
- Gunicorn配置详解
- pentaho使用步骤简介
- 后疫情时代,打造15分钟交通圈