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中的异步爬虫详解

    python中的异步爬虫详解

    这篇文章主要介绍了python中的异步爬虫详解,所谓的异步异步 IO,就是发起一个 IO 阻塞的操作,但是不用等到它结束,可以在它执行 IO 的过程中继续做别的事情,当 IO 执行完毕之后会收到它的通知,需要的朋友可以参考下
    2023-08-08
  • Python金融数据可视化汇总

    Python金融数据可视化汇总

    这篇文章主要介绍了Python金融数据可视化(两列数据的提取,分别画,双坐标轴,双图,两种不同的图)等内容。
    2017-11-11
  • Python实例方法、类方法、静态方法的区别与作用详解

    Python实例方法、类方法、静态方法的区别与作用详解

    这篇文章主要介绍了Python实例方法、类方法、静态方法的区别与作用,结合实例形式分析了Python面向对象程序设计中实例方法、类方法、静态方法的概念、原理、用法及相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • Pyserial设置缓冲区大小失败的问题解决

    Pyserial设置缓冲区大小失败的问题解决

    本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • pip install urllib2不能安装的解决方法

    pip install urllib2不能安装的解决方法

    今天小编就为大家分享一篇pip install urllib2不能安装的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • OpenCV MediaPipe实现颜值打分功能

    OpenCV MediaPipe实现颜值打分功能

    这篇文章主要介绍了通过OpenCV MediaPipe实现摄像头实时检测颜值打分功能,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的可以了解一下
    2021-12-12
  • 用Python监控NASA TV直播画面的实现步骤

    用Python监控NASA TV直播画面的实现步骤

    本文分享一个名为"Spacestills"的开源程序,它可以用于查看 NASA TV 的直播画面(静止帧)
    2021-05-05
  • Python多线程模块Threading用法示例小结

    Python多线程模块Threading用法示例小结

    这篇文章主要介绍了Python多线程模块Threading用法,结合实例形式分析了Python多线程模块Threading相关概念、原理、进程与线程的区别及使用技巧,需要的朋友可以参考下
    2019-11-11
  • python实现将range()函数生成的数字存储在一个列表中

    python实现将range()函数生成的数字存储在一个列表中

    这篇文章主要介绍了python实现将range()函数生成的数字存储在一个列表中,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 利用Python开发一个功能全面的Markdown编辑工具

    利用Python开发一个功能全面的Markdown编辑工具

    这篇文章主要为大家详细介绍了如何利用Python开发一个功能全面的Markdown编辑工具,支持Markdown内容的编辑,HTML预览等功能,需要的可以参考下
    2025-03-03

最新评论