Python 计算任意两向量之间的夹角方法

作者:Javy Wang 时间:2022-11-10 07:01:47 

如图所示,我们要计算任意两个向量之间的夹角。

(图中的坐标数字是估计值,随手给定)

Python 计算任意两向量之间的夹角方法

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,向量,夹角
0
投稿

猜你喜欢

  • numpy中实现ndarray数组返回符合特定条件的索引方法

    2023-04-21 06:21:53
  • python如何保存文本文件

    2021-10-27 23:16:25
  • 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
  • PyTorch中的squeeze()和unsqueeze()解析与应用案例

    2022-09-22 23:04:49
  • Python数据结构之递归方法详解

    2021-05-11 09:10:37
  • 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
  • 使用python BeautifulSoup库抓取58手机维修信息

    2022-08-10 01:55:20
  • JS数组Array常用方法汇总+实例

    2024-04-30 10:42:02
  • asp之家 网络编程 m.aspxhome.com