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

 更新时间:2019年07月05日 14:56:21   作者:Javy Wang  
今天小编就为大家分享一篇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

以上这篇Python 计算任意两向量之间的夹角方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中JsonPath提取器和正则提取器

    Python中JsonPath提取器和正则提取器

    本文主要介绍了Python中JsonPath提取器和正则提取器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python学习笔记之For循环用法详解

    Python学习笔记之For循环用法详解

    这篇文章主要介绍了Python学习笔记之For循环用法,结合实例形式详细分析了Python for循环的功能、原理、用法及相关操作注意事项,需要的朋友可以参考下
    2019-08-08
  • Python selenium实现大麦网自动购票过程解析

    Python selenium实现大麦网自动购票过程解析

    大麦网是中国综合类现场娱乐票务营销平台,业务覆盖演唱会、 话剧、音乐剧、体育赛事等领域,今天我们要用代码来实现他的购票过程,感兴趣的朋友一起看看吧
    2022-05-05
  • pycharm使用技巧之自动调整代码格式总结

    pycharm使用技巧之自动调整代码格式总结

    这篇文章主要给大家介绍了关于pycharm使用技巧之自动调整代码格式总结的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python条件语句的使用

    Python条件语句的使用

    python 语句是按固定顺序执行的,先执行前面的语句,再执行后面的语句,这篇文章主要介绍了Python条件语句的用法,需要的朋友可以参考下
    2022-08-08
  • 探索Python列表合并技术提高代码灵活性

    探索Python列表合并技术提高代码灵活性

    本文将深入研究Python中列表合并的几种方法,通过详细的示例代码和细致的解释,呈现一场关于列表操作的精彩探险,无论是初学者还是有经验的开发者,通过学习本文,将更加熟练地运用这些方法,提升代码的效率和可读性
    2024-01-01
  • keras K.function获取某层的输出操作

    keras K.function获取某层的输出操作

    这篇文章主要介绍了keras K.function获取某层的输出操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 如何理解Python中的变量

    如何理解Python中的变量

    在本篇文章里小编给大家分享的是关于Python中变量是什么意思的相关基础知识点,需要的朋友们可以学习下。
    2020-06-06
  • ITK 实现多张图像转成单个nii.gz或mha文件案例

    ITK 实现多张图像转成单个nii.gz或mha文件案例

    这篇文章主要介绍了ITK 实现多张图像转成单个nii.gz或mha文件案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • python判断一个对象是否可迭代的例子

    python判断一个对象是否可迭代的例子

    今天小编就为大家分享一篇python判断一个对象是否可迭代的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07

最新评论