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使用random和tertools模块解一些经典概率问题
Jan 28 Python
Python中文件操作简明介绍
Apr 13 Python
通过shell+python实现企业微信预警
Mar 07 Python
浅谈python之高阶函数和匿名函数
Mar 21 Python
Python实现去除图片中指定颜色的像素功能示例
Apr 13 Python
django页面跳转问题及注意事项
Jul 18 Python
python实现读取excel文件中所有sheet操作示例
Aug 09 Python
Python读入mnist二进制图像文件并显示实例
Apr 24 Python
Python+pyftpdlib实现局域网文件互传
Aug 24 Python
手把手教你用Django执行原生SQL的方法
Feb 18 Python
Jupyter notebook 输出部分显示不全的解决方案
Apr 24 Python
浅析Python中的套接字编程
Jun 22 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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
PHP面向对象编程快速入门
2006/10/09 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
jquery模拟按下回车实现代码
2011/09/20 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
js选项卡的实现方法
2015/02/09 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
Python进程间通信Queue实例解析
2018/01/25 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
如何理解python对象
2020/06/21 Python
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
公益活动策划方案
2014/01/09 职场文书
学生打架检讨书1000字
2014/01/16 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
作文评语大全
2014/04/23 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
平遥古城导游词
2015/02/03 职场文书
2019暑假学生安全口号
2019/06/27 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python