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编写的com组件发生R6034错误的原因与解决办法
Apr 01 Python
matplotlib设置legend图例代码示例
Dec 19 Python
python实现壁纸批量下载代码实例
Jan 25 Python
Django中Forms的使用代码解析
Feb 10 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
python2和python3的输入和输出区别介绍
Nov 20 Python
对python 判断数字是否小于0的方法详解
Jan 26 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
Python容器使用的5个技巧和2个误区总结
Sep 26 Python
Python文件路径名的操作方法
Oct 30 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
Python中bisect的用法及示例详解
Jul 20 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
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
JS实现深度优先搜索求解两点间最短路径
2019/01/17 Javascript
利用soaplib搭建webservice详细步骤和实例代码
2013/11/20 Python
tornado捕获和处理404错误的方法
2014/02/26 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
马来西亚网上购物:Youbeli
2018/03/30 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
建筑学专业自荐书
2014/07/09 职场文书
三八妇女节主持词
2015/07/04 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python
详解nginx进程锁的实现
2021/06/14 Servers
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL
python blinker 信号库
2022/05/04 Python