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


Posted in Python onJuly 05, 2019

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

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

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操作MySQL数据库具体方法
Oct 28 Python
使用Python写一个贪吃蛇游戏实例代码
Aug 21 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
Python之ReportLab绘制条形码和二维码的实例
Jan 15 Python
python正则表达式及使用正则表达式的例子
Jan 22 Python
Django的HttpRequest和HttpResponse对象详解
Jan 26 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
Jun 24 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
pycharm通过ssh连接远程服务器教程
Feb 12 Python
什么是python的自省
Jun 21 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 Python
python实现两个经纬度点之间的距离和方位角的方法
Jul 05 #Python
Python3+Appium实现多台移动设备操作的方法
Jul 05 #Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 #Python
python读出当前时间精度到秒的代码
Jul 05 #Python
python读写csv文件方法详细总结
Jul 05 #Python
Python考拉兹猜想输出序列代码实践
Jul 05 #Python
python读写csv文件实例代码
Jul 05 #Python
You might like
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
php数组键名技巧小结
2015/02/17 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
js 数值项目的格式化函数代码
2010/05/14 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
Javascript获取某个月的天数
2018/05/30 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
JavaScript展开操作符(Spread operator)详解
2019/07/20 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
机器学习python实战之手写数字识别
2017/11/01 Python
python微信公众号开发简单流程
2018/03/23 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
酷瑞网络科技面试题
2012/03/30 面试题
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
奥林匹克的口号
2014/06/13 职场文书
会计岗位职责范本
2015/04/02 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
结婚通知短信大全
2015/04/17 职场文书
感恩的心主题班会
2015/08/12 职场文书
apache ftpserver搭建ftp服务器
2022/05/20 Servers
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python