向量平行

罗德里格斯旋转方程推导

戏子无情 提交于 2020-03-08 01:49:41
罗德里格斯旋转方程是从角度和向量计算出相应的旋转矩阵,这个旋转方程在很多方面有重要的应用,这里简要概述一下方程的推导过程。 主要参考资料是维基百科,其实基本上就是翻译一下,自己走一遍这个推导过程,这里把链接贴出来。 维基百科-罗德里格斯方程 推导过程: 整个推导过程都是围绕上面的图片开展的,进行向量推导。 首先,定义向量k是旋转轴的单位矢量,向量v是绕向量k旋转角度θ的任意向量(旋转方向遵循右手定则,图中逆时针)。 使用点乘和叉乘,向量v可以分解成与轴k平行和垂直的分量, $\mathbf{v}=\mathbf{v}_{\parallel}+\mathbf{v}_{\bot}$            (1-1) 与k平行的分量是 $\mathbf{v}_{\parallel}=\left( \mathbf{v}\cdot \mathbf{k} \right) \mathbf{k}$    (1-2) 向量v在k上的向量投影,垂直于k的分量为 $\mathbf{v}_{\bot}=\mathbf{v}-\mathbf{v}_{\parallel}=\mathbf{v}-\left( \mathbf{k}\cdot \mathbf{v} \right) \mathbf{k}=-\mathbf{k}\times \left( \mathbf{k}\times \mathbf{v}

计算机图形学:基本变换

放肆的年华 提交于 2020-02-23 17:39:03
基本变换 1 基向量的变换 1.1 基向量的变换 初始基向量为 i ^ ( 1 , 0 ) , j ^ ( 0 , 1 ) \hat{i}(1,0),\hat{j}(0,1) i ^ ( 1 , 0 ) , j ^ ​ ( 0 , 1 ) ,经过变换后变为 i ^ ( 3 , − 2 ) , j ^ ( 2 , 1 ) \hat{i}(3,-2), \hat{j}(2,1) i ^ ( 3 , − 2 ) , j ^ ​ ( 2 , 1 ) 1.2 线性变换对向量的作用 仅需取出向量的坐标,将它们分别于矩阵的特定列相乘,然后将结果相加即可 逆时针旋转90°的例子 当两个向量变为线性相关时,两个向量共线,二维空间会被挤压到一维 2 Transformation Classification(分类) 2.1 Rigid-body Transformation (刚体变换) 物体本身的长度、角度、大小不会变化包括: Identity(不变) Translation(平移) Rotation(旋转) 以及他们的组合 2.2 Similarity Transformation(相似变换) 保持角度 Identity(不变) Translation(平移) Rotation(旋转) Isotropic Scaling(均衡缩放) 以及他们的组合 2.3 Linear

原创:语义相似度(理论篇)

落爺英雄遲暮 提交于 2020-01-18 14:50:51
  如果本文观点有不对的地方,欢迎指正! author:佟学强  开场白:对于事物的理解,一般分3个层次:①看山是山,看水是水②看山不是山,看水不是水③看山是山,看水是水。对AI和nlp的理解,同样会有这三个层次。比如,刚毕业的硕士或者毕业1~2年的,会热衷于研究GAN,seq2seq,甚至包括nlp刚起步的一些公司。这类群体对nlp的理解处于第一层次,后面还有很多雷区要踩,要付出一定的试错代价,成长的代价。等到有一定的积累了,对nlp的理解有一定的理解功底了,会逐渐修正研究路线和方向,这个时候比第一阶段有更多的疑惑,因为随着研究的深入,发现nlp和图像机制存在很大的不同,不能照搬,认知智能好像不是那么容易,由感知智能到认知智能的跨越,是这一阶段的一大进步,这是第二个层次,各个派别有争论,看山不是山,看水不是水。最高境界,返璞归真,拥有行业20年及以上的研究人员,对nlp看的比较透,目前的Ai基本上陷入了统计建模,概率的漩涡之中,还不是真正的智能。仅仅从数据中挖掘线性关系还远远不够,应该让机器具有认知能力,挖掘因果关系。致力于推进nlp认知智能的进步,加大力度研究知识图谱,包括知识图谱的向量化,与深度学习的融合,让神经网络学习规则等等。可以这样说,目前从感知智能到认知智能的跨越,才刚刚开始,知识工程的复苏势不可挡。本人接触过许多刚入门的人,基本上对seq2seq和GAN比较狂热

“等一下,我碰!”——常见的2D碰撞检测

不羁的心 提交于 2020-01-01 22:05:06
转自:https://aotu.io/notes/2017/02/16/2d-collision-detection/ 在 2D 环境下,常见的碰撞检测方法如下: 外接图形判别法 轴对称包围盒(Axis-Aligned Bounding Box),即无旋转矩形。 圆形碰撞 圆形与矩形(无旋转) 圆形与旋转矩形(以矩形中心点为旋转轴) 光线投射法 分离轴定理 其他 地图格子划分 像素检测 下文将由易到难的顺序介绍上述各种碰撞检测方法:外接图形判别法 > 其他 > 光线投射法 > 分离轴定理。 另外,有一些场景只要我们约定好限定条件,也能实现我们想要的碰撞,如下面的碰壁反弹: 当球碰到边框就反弹(如 x/y轴方向速度取反 )。 if(ball.left < 0 || ball.right > rect.width) ball.velocityX = -ball.velocityX if(ball.top < 0 || ball.bottom > rect.height) ball.velocityY = -ball.velocityY 再例如当一个人走到 100px 位置时不进行跳跃,就会碰到石头等等。 因此,某些场景只需通过设定到适当的参数即可实现碰撞检测。 外接图形判别法 轴对称包围盒(Axis-Aligned Bounding Box) 概念:判断任意两个(无旋转

计算机图形学总复习(二)

不羁岁月 提交于 2019-12-23 13:35:02
计算机图形学期末总复习 第四章 向量 一、向量 The difference between two points is a vector. 两点之差为向量 The sum of a point and a vector is a point 点和向量之和为一个点 向量的线性组合: w = a1 * v1 + a2 * v2 + …+ am * vm 若a1 + a2 + a3 +…+ am = 1 ,则称为仿射组合 向量大小及向量归一化 二、点积 点积之后得到的结果是一个数 两个向量间的夹角 向量点积符号性 向量正交 正交投影和点到直线距离 两遍同时乘v 最终整理得到 沿v方向c的分量称为向量c投影到向量v上的正交投影 垂直于v方向上的分量称为c到直线的距离 反射 三、向量叉积(三维) 为了方便记忆,可以改写成以下 总结来说 叉乘的集合解释为: 当两向量平行或方向相反时叉乘结果为0 叉乘的性质 平面的法向量 平面内三个点(不在一条直线上)相减得出两个向量。两向量叉乘即得该平面的法向量。 点的仿射组合 点的线性组合(除仿射组合外)没有意义,但仿射组合有意义 点的变换,线性插值 内插 A为变换前坐标,B为变换后坐标,P(t)为t(0<=t<=1)时刻的坐标 推广 两次,三次内插产生的弧形 四、直线 直线方程 当0 <= t <= 1,为线段 当t >= 0,为射线 当-∞ <= t

计算几何相关

耗尽温柔 提交于 2019-12-17 19:53:57
计算几何相关 向量表示法 这里最适合的就是用一个二维点对 \((a,b)\) 来表示了。 点积 \({a.x*b.x+a.y*b.y}\) 在向量的含义下: \(\vec{a}·\vec{b}=|\vec{a}||\vec{b}|cos<\vec{a},\vec b>\) 叉积 \({a.x*b.y-a.y*b.x}\) 这个东西很有用,首先这个东西的绝对值就是两个向量构成的三角形的面积的二倍。 证明的话只需要把图画出来,然后过向量端点的四条平行于坐标轴的直线将包含了整个向量的矩形分割成四个部分,然后割补法算一算就好了。 发现上面写面积的时候带了绝对值,当 \(b\) 在 \(a\) 的逆时针方向时,即 \(b\) 在 \(a\) 的左侧时,两者的叉积为正,否则叉积为负,所以通过叉积也可以很方便的计算向量之间的位置关系。 转角 把向量转动一个角度 \(\alpha\) 。 显然向量如果把它的模长变为 \(1\) ,就可以在单位圆上对应一个点,假设其模长为 \(R\) ,那么一个向量可以写为 \((R\cos\beta,R\sin\beta)\) ,那么转角只需要改变 \(\beta\) 即可。 再用三角函数的和角公式可以很容易拆分。 极角 其实就是如何计算上面那个 \(\beta\) ,直接 \(atan2(a.y,a.x)\) 就好了。 两条直线的交点

罗德里格斯公式

风流意气都作罢 提交于 2019-12-10 15:49:58
在三维空间中,给定一固定旋转轴,任意初始向量绕旋转轴旋转任意角度,可表示为 ,其中,v 表示旋转前向量, 表示旋转后向量,R 表示旋转矩阵,该矩阵参数与固定旋转轴坐标,旋转角度有关。下面使用图示推导旋转矩阵 R: 如上图所示,单位向量 为固定旋转轴,原向量 v 旋转 后为 ; 分解原向量 ,向量 v 与向量 k(或者 ) 的夹角为 ,该值已知; 向量 构成直角三角形,则有: , ; 向量叉乘 ,其方向垂直于 构成的平面,w 的模长为 ,则有 ,且两向量正交; 以上向量 构成三维空间已知正交向量基, 可表示: ,在 向量构成平面上, 旋转 后为: , ,由于 ,进一步化简为: ; 定义向量 ,其方向与 平行,其模长为 ,则 ; 引入向量 的叉积矩阵 ,叉积运算可转换为矩阵运算 ; 改写 线性组合 ,引入叉积矩阵 K得: , 则旋转矩阵 。 以下给出代码实现: 1 void GetRotateMatrix(Matrix<float>& Q, Vector<float>& axis, float theta) 2 { 3 // 使用罗德里格斯公式(Rodriguez formula) 4 5 // 构造单位向量 6 float len = sqrt(axis.data[0] * axis.data[0] + 7 axis.data[1] * axis.data[1] + axis

数据挖掘学习(三)――文本挖掘

匿名 (未验证) 提交于 2019-12-03 00:38:01
对情感进行分析,对评论数据进行相应的分析。 可以用结巴进行分词,主要是划分各文本之间的关系,进行分词操作。 Dict.txt是指结巴使用的分词,也可以自己定义相应的结巴词典,也可以下载一些好用的词典。 第一个参数:我们的词汇; 第二个参数:词频(即重要的程度); 第三个参数:词性 1)使用jieba进行分词: #!/usr/bin/env python # _*_ UTF-8 _*_ import jieba sentence = " 我喜欢东方明珠 " # cut_all=True :为全模式。 # cut_all=FALSE :精准模式。 words = jieba.cut(sentence , cut_all = True ) print (words) # 全模式分词,用的是循环才能获取相应的结果,如果直接 print 则显示不成功。 for item in words: print (item) print ( "----------------" ) # 精准模式分词。 words2 = jieba.cut(sentence , cut_all = False ) for item in words2: print (item) print ( "----------------" ) # 搜索引擎分词: words3 = jieba.cut_for_search

[转] 理解矩阵

孤人 提交于 2019-12-03 00:08:41
from: https://www.cnblogs.com/marsggbo/p/10144060.html 线性代数课程,无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙。比如说,在全国一般工科院系教学中应用最广泛的同济线性代数教材(现在到了第四版),一上来就介绍逆序数这个“前无古人,后无来者”的古怪概念,然后用逆序数给出行列式的一个极不直观的定义,接着是一些简直犯傻的行列式性质和习题——把这行乘一个系数加到另一行上,再把那一列减过来,折腾得那叫一个热闹,可就是压根看不出这个东西有嘛用。大多数像我一样资质平庸的学生到这里就有点犯晕:连这是个什么东西都模模糊糊的,就开始钻火圈表演了,这未免太“无厘头”了吧!于是开始有人逃课,更多的人开始抄作业。这下就中招了,因为其后的发展可以用一句峰回路转来形容,紧跟着这个无厘头的行列式的,是一个同样无厘头但是伟大的无以复加的家伙的出场——矩阵来了!多年之后,我才明白,当老师犯傻似地用中括号把一堆傻了吧叽的数括起来,并且不紧不慢地说:“这个东西叫做矩阵”的时候,我的数学生涯掀开了何等悲壮辛酸、惨绝人寰的一幕!自那以后,在几乎所有跟“学问”二字稍微沾点边的东西里,矩阵这个家伙从不缺席。对于我这个没能一次搞定线性代数的笨蛋来说,矩阵老大的不请自来每每搞得我灰头土脸,头破血流。长期以来,我在阅读中一见矩阵,就如同阿Q见到了假洋鬼子

Unity基础之:UnityAPI的学习

自闭症网瘾萝莉.ら 提交于 2019-11-26 12:11:25
版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址: http://www.cnblogs.com/raymondking123/ )以及微信公众号"优梦创客" 您可以自由转载,但必须加入完整的版权声明! Quaternion 表示旋转 矩阵 //9个浮点数,数据占用量大,且除了表示旋转外,还表示缩放((0,0),(1,1),(2,2)点表示x,y,z的三个缩放) //显卡使用 欧拉角 rotation,绕x,y,z轴的旋转量 //给定朝向的表示不惟一,通过限定yaw,roll在+-180度,pitch在+-90度可以解决该问题 (pitch,绕右向量旋转,点头;yaw,绕上向量旋转,摇头;roll,绕前方向,转头;常用于飞行模拟) //万向锁 如:一个平行于x轴的向量绕y轴旋转-90度,会平行于z轴,此时所有绕z轴的旋转都不再起作用 轴角对 //用旋转轴,旋转角度的对偶表示旋转 //旋转角无唯一 单位四元数:[1,0] 1是标量,0是零向量 四元数的模,4个数的平方和开根 identity :单位四元数 eulerAngles //返回四元数对应的欧拉角,是一个属性 W,x,y,z w表示转化后的旋转值,x,y,z表示转化后的旋转轴 LookRotation //给定一个方向向量,返回表示该方向旋转的四元数 public static Quaternion