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生成随机验证码(中文验证码)示例
Apr 03 Python
python网络编程学习笔记(五):socket的一些补充
Jun 09 Python
python实现爬虫统计学校BBS男女比例(一)
Dec 31 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
Oct 20 Python
Python 将RGB图像转换为Pytho灰度图像的实例
Nov 14 Python
numpy数组拼接简单示例
Dec 15 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
python多线程并发及测试框架案例
Oct 15 Python
python自动生成model文件过程详解
Nov 02 Python
django框架中间件原理与用法详解
Dec 10 Python
解决python打开https出现certificate verify failed的问题
Sep 03 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
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
js prototype截取字符串函数
2010/04/01 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
django使用channels2.x实现实时通讯
2018/11/28 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
详解如何设置Python环境变量?
2019/05/13 Python
一行Python代码过滤标点符号等特殊字符
2019/08/12 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
Python中的__init__作用是什么
2020/06/09 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
文秘专业毕业生就业推荐信
2013/11/08 职场文书
应届毕业生个人自荐信范文
2013/11/30 职场文书
文明村创建实施方案
2014/03/27 职场文书
销售团队激励口号
2014/06/06 职场文书
环保志愿者活动总结
2014/06/27 职场文书
旅游项目合作意向书
2015/05/08 职场文书
一年级语文教学随笔
2015/08/14 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS