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每次处理固定个数的字符的方法总结
Jan 29 Python
分析python服务器拒绝服务攻击代码
Jan 16 Python
python合并文本文件示例
Feb 07 Python
Python中用Descriptor实现类级属性(Property)详解
Sep 18 Python
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
python实现决策树ID3算法的示例代码
May 30 Python
python高级特性和高阶函数及使用详解
Oct 17 Python
Django中使用Celery的方法示例
Nov 29 Python
解决Python3 控制台输出InsecureRequestWarning问题
Jul 15 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 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
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
php列出一个目录下的所有文件的代码
2012/10/09 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
Jquery cookie操作代码
2010/03/14 Javascript
Javascript Object 对象学习笔记
2014/12/17 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
python轮询机制控制led实例
2020/05/03 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
财务会计专业求职信
2014/06/09 职场文书
国贸专业求职信
2014/06/28 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
2014年标准化工作总结
2014/12/17 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
pytorch 6 batch_train 批训练操作
2021/05/28 Python
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
MySQL transaction事务安全示例讲解
2022/06/21 MySQL