获取两个向量a,b之间的夹角的几种方法

获取两个向量a,b之间的夹角的几种方法


方法1:

通过两个向量的法向量的点乘的反余弦获取弧度,然后通过弧度获取角度

rad = Mathf.Acos(Vector3.Dot(a.normal,b.normal))

ang = rad * Mathf.Rad2Deg


方法2:

通过两个向量的法向量的叉乘的模长的反正弦获取弧度,然后通过弧度获取角度

rad = Mathf.Asin(Vector3.Distance(Vector3.zero,Vector3.Cross(a.normal,b.normal)))

ang = rad * Mathf.Rad2Deg


方法3:

先获取a,b向量的角度大小,然后这个角度可能是正的角度,也可能是负的角度。

再获取a到b之间夹角的符号,符号为(ab叉乘的法线)和(ab法线的叉乘)的点乘的Mathf.Sign值,即为符号

符号 = Vector3.Dot(Vector3.Cross(a,b).normal,Vector3.Cross(a.normal,b.normal))

ang = Vector3.Angle(a,b)

ang = ang * 符号


转自:
https://www.cnblogs.com/vsirWaiter/p/8348035.html

### 余弦相似度的概念及其应用 #### 什么是余弦相似度? 余弦相似度(Cosine Similarity)是一种衡量两个非零向量之间角度的度量方法,它通过计算两个向量之间夹角余弦值来表示它们的相似程度。这种方法主要关注的是两个向量的方向而非其大小,因此能够有效捕捉到向量间的相似性而不会受到向量长度的影响[^2]。 #### 余弦相似度的应用场景 余弦相似度在多个领域有着广泛应用,尤其是在文本分析、信息检索以及推荐系统等方面。以下是几个典型应用场景: - **文本分类与聚类**:在自然语言处理中,文档常被表示为词频向量或TF-IDF向量。通过计算这些向量之间的余弦相似度,可以评估不同文档的内容相似性,进而完成文本分类或聚类的任务[^1]。 - **信息检索**:搜索引擎会将查询和文档分别表示为向量形式,然后利用余弦相似度来匹配最相关的文档并返回给用户[^3]。 - **推荐系统**:基于用户的兴趣偏好构建特征向量后,可以通过比较用户间或者物品间的余弦相似度来进行个性化推荐。 #### 如何计算余弦相似度? 假设存在两个n维向量A=(a₁,a₂,...,an) 和 B=(b₁,b₂,...,bn),那么这两个向量之间的余弦相似度可通过如下公式得到: \[ \text{cos}(\theta)=\frac{\vec A \cdot \vec B}{||\vec A|| ||\vec B||}\] 其中, - \( \vec A \cdot \vec B\) 表示两向量的点积; - \( ||\vec A|| \) 和 \( ||\vec B|| \) 则分别是向量A和B的欧几里得范数。 具体实现上,在Python编程环境中可借助`numpy`库轻松达成此目的。下面给出一段简单的代码示例展示如何使用该库执行这一操作: ```python import numpy as np def cosine_similarity(vec_a, vec_b): dot_product = np.dot(vec_a, vec_b) norm_a = np.linalg.norm(vec_a) norm_b = np.linalg.norm(vec_b) return dot_product / (norm_a * norm_b) vector_A = np.array([1, 2, 3]) vector_B = np.array([4, 5, 6]) similarity_score = cosine_similarity(vector_A, vector_B) print(f"Cosine similarity between vectors is {similarity_score}") ``` 以上程序定义了一个名为`cosine_similarity()` 的函数用来接收任意两个输入向量作为参数,并依据前述理论框架输出对应的余弦相似分数[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值