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实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 Python
python通过文件头判断文件类型
Oct 30 Python
python基础教程项目二之画幅好画
Apr 02 Python
Python subprocess库的使用详解
Oct 26 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
python将txt文件读入为np.array的方法
Oct 30 Python
Python父目录、子目录的相互调用方法
Feb 16 Python
Python中一般处理中文的几种方法
Mar 06 Python
python实现WebSocket服务端过程解析
Oct 18 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
pycharm中leetcode插件使用图文详解
Dec 07 Python
Python命令行参数argv和argparse该如何使用
Feb 08 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.MVC的模板标签系统(二)
2006/09/05 PHP
PHP中显示格式化的用户输入
2006/10/09 PHP
自己前几天写的无限分类类
2007/02/14 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
python字符串替换的2种方法
2014/11/30 Python
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
Python对象属性自动更新操作示例
2018/06/15 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
Python实现仿射密码的思路详解
2020/04/23 Python
Python-openCV开运算实例
2020/07/05 Python
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
一个精品风格的世界:Atterley
2019/05/01 全球购物
五一手机促销方案
2014/03/08 职场文书
工程力学专业自荐信范文
2014/03/17 职场文书
个人工作表现自我评价
2015/03/06 职场文书
2015年政教主任工作总结
2015/07/23 职场文书