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如何实现excel数据添加到mongodb
Jul 30 Python
Swift 3.0在集合类数据结构上的一些新变化总结
Jul 11 Python
python 批量修改/替换数据的实例
Jul 25 Python
python将txt文件读入为np.array的方法
Oct 30 Python
python3 面向对象__类的内置属性与方法的实例代码
Nov 09 Python
Django REST framework 分页的实现代码
Jun 19 Python
用python打印1~20的整数实例讲解
Jul 01 Python
python爬虫爬取幽默笑话网站
Oct 24 Python
基于TensorFlow常量、序列以及随机值生成实例
Jan 04 Python
用Python生成HTML表格的方法示例
Mar 06 Python
opencv 图像腐蚀和图像膨胀的实现
Jul 07 Python
pycharm永久激活超详细教程
Oct 29 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新手上路(十三)
2006/10/09 PHP
PHP 柱状图实现代码
2009/12/04 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
IE和Firefox下event事件杂谈
2009/12/18 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
用console.table()调试javascript
2014/09/04 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
django基础之数据库操作方法(详解)
2017/05/24 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
2018/06/11 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
估算杭州有多少软件工程师
2015/08/11 面试题
测试时代收集的软件测试面试题
2013/09/25 面试题
护士先进个人总结
2015/02/13 职场文书
男方家长婚礼致辞
2015/07/27 职场文书