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基础入门之seed()方法的使用
May 15 Python
Python3访问并下载网页内容的方法
Jul 28 Python
python结合shell查询google关键词排名的实现代码
Feb 27 Python
Python实现的个人所得税计算器示例
Jun 01 Python
解决pycharm 误删掉项目文件的处理方法
Oct 22 Python
python自动保存百度盘资源到百度盘中的实例代码
Aug 26 Python
Python的几种主动结束程序方式
Nov 22 Python
python实现名片管理器的示例代码
Dec 17 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
Python unittest基本使用方法代码实例
Jun 29 Python
详解python模块pychartdir安装及导入问题
Oct 22 Python
基于Python实现全自动下载抖音视频
Nov 06 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 Session存储到Redis的方法
2013/11/04 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
PHP判断一个变量是否为整数、正整数的方法示例
2019/09/11 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
基于JQuery 滑动与动画的说明介绍
2013/04/18 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
2017/02/13 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
js实现微信聊天界面
2020/08/09 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
Python实现批量转换文件编码的方法
2015/07/28 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
优秀共产党员先进事迹材料
2014/05/06 职场文书
三好学生竞选稿
2015/11/21 职场文书
党风廉政承诺书2016
2016/03/25 职场文书