Python 计算任意两向量之间的夹角方法
作者:Javy Wang 时间:2022-11-10 07:01:47
如图所示,我们要计算任意两个向量之间的夹角。
(图中的坐标数字是估计值,随手给定)
python代码如下
import math
AB = [1,-3,5,-1]
CD = [4,1,4.5,4.5]
EF = [2,5,-2,6]
PQ = [-3,-4,1,-6]
def angle(v1, v2):
dx1 = v1[2] - v1[0]
dy1 = v1[3] - v1[1]
dx2 = v2[2] - v2[0]
dy2 = v2[3] - v2[1]
angle1 = math.atan2(dy1, dx1)
angle1 = int(angle1 * 180/math.pi)
# print(angle1)
angle2 = math.atan2(dy2, dx2)
angle2 = int(angle2 * 180/math.pi)
# print(angle2)
if angle1*angle2 >= 0:
included_angle = abs(angle1-angle2)
else:
included_angle = abs(angle1) + abs(angle2)
if included_angle > 180:
included_angle = 360 - included_angle
return included_angle
ang1 = angle(AB, CD)
print("AB和CD的夹角")
print(ang1)
ang2 = angle(AB, EF)
print("AB和EF的夹角")
print(ang2)
ang3 = angle(AB, PQ)
print("AB和PQ的夹角")
print(ang3)
ang4 = angle(CD, EF)
print("CD和EF的夹角")
print(ang4)
ang5 = angle(CD, PQ)
print("CD和PQ的夹角")
print(ang5)
ang6 = angle(EF, PQ)
print("EF和PQ的夹角")
print(ang6)
结果为
AB和CD的夹角
55
AB和EF的夹角
139
AB和PQ的夹角
52
CD和EF的夹角
84
CD和PQ的夹角
107
EF和PQ的夹角
169
来源:https://blog.csdn.net/DSTJWJW/article/details/84258760
标签:Python,向量,夹角
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
numpy中实现ndarray数组返回符合特定条件的索引方法
2023-04-21 06:21:53
![](https://img.aspxhome.com/file/2023/3/112973_0s.jpg)
python如何保存文本文件
2021-10-27 23:16:25
![](https://img.aspxhome.com/file/2023/5/99675_0s.png)
Python Parser的用法
2022-05-23 23:53:55
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2024-04-28 10:18:32
判断数据库表是否存在以及修改表名的方法
2024-01-22 09:21:24
GoLang并发编程中条件变量sync.Cond的使用
2024-04-25 15:28:40
pandas 按照特定顺序输出的实现代码
2023-02-04 19:35:17
![](https://img.aspxhome.com/file/2023/0/65510_0s.png)
PyTorch中的squeeze()和unsqueeze()解析与应用案例
2022-09-22 23:04:49
![](https://img.aspxhome.com/file/2023/2/77762_0s.png)
Python数据结构之递归方法详解
2021-05-11 09:10:37
![](https://img.aspxhome.com/file/2023/3/123523_0s.png)
Python中的Decorator装饰器的使用示例
2023-07-02 10:37:44
浅谈Python类的__getitem__和__setitem__特殊方法
2022-05-05 00:21:16
如何在不同版本的SQL Server中存储数据
2009-01-15 13:06:00
浅析BootStrap模态框的使用(经典)
2023-08-20 02:21:19
对numpy.append()里的axis的用法详解
2022-03-20 18:19:59
Eclipse 格式化代码时不换行与自动换行的实现方法
2023-04-05 03:52:55
PHP求最大子序列和的算法实现
2023-11-15 04:17:28
python基础教程之实现石头剪刀布游戏示例
2022-02-09 15:41:11
Oracle数据表中的死锁情况解决方法
2024-01-15 11:23:01
![](https://img.aspxhome.com/file/2023/5/65685_0s.png)
使用python BeautifulSoup库抓取58手机维修信息
2022-08-10 01:55:20
JS数组Array常用方法汇总+实例
2024-04-30 10:42:02