如图所示,我们要计算任意两个向量之间的夹角。

(图中的坐标数字是估计值,随手给定)

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 计算任意两向量之间的夹角方法相关推荐

  1. 【javaScript获取时间,计算任意两个日期之间相隔的天数】计算任意两个日期之间相隔的天数

    主要算法: 利用毫秒差,由于1000毫秒等于1秒,60秒等于1分钟,60分钟一小时,一天24小时.所以可以用:毫秒差 除 以(60×60×1000×24)等于天数. 代码如下: <script ...

  2. Python 计算任意两向量之间的夹角

    如图所示,我们要计算任意两个向量之间的夹角. (图中的坐标数字是估计值,随手给定) python代码如下 import math AB = [1,-3,5,-1] CD = [4,1,4.5,4.5] ...

  3. T-SQL 2 Tips: 1.计算任意两日期之间的周一到周日分别各有几个! 2.根据出生日期计算精确年龄!...

    这两个小技巧,不写不知道,一写吓一跳! 都是看似简单,实际做起来就懵,得仔细想一想,才能写对! 凡是有日期运算的程序都要细心哦! 先说第二个: 2.根据出生日期精确计算年龄!   所谓计算精确年龄就是 ...

  4. js编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数。...

    编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数. <body><input type="text" id="txt"& ...

  5. js 编写一个函数,计算任意两个数字之间所能组成的奇数个数

    <!DOCTYPE html> <html> <head><title></title> </head> <body> ...

  6. Java 计算任意两天之间相隔的天数

    在学习了Java中的Date类相关的方法之后,我试着自己写了小程序可以计算任意两天之间相隔的天数,挺好用的. 设计思路: 运用Date类中提供的getTime()方法,获取输入的日期与1990-01- ...

  7. golang计算任意两个时间点之间所覆盖的天数

    golang计算任意两个时间点之间所覆盖的天数 前言 例子 思路 实现 验证 小结 前言 有时候我们需要统计某个东西的日平均使用时长,我们就需要将一大段的使用时长拆分到天. 例子 例子1 From: ...

  8. php计算指定日期之间的天数,php计算任意两个日期之间的天数

    /* php计算任意两个日期之间的天数 基本思想,算术减法: cur_date         2009 04 11 last_date   - 2008 12 20 ---------------- ...

  9. js小练习:编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数

    //编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数(js小白,如有不足,请多多留言哦) //比如: 计算0-3之间能组成的奇数个是01.21.03.13.23.31 // 1- ...

最新文章

  1. 论文笔记系列-Efficient Neural Architecture Search via Parameter Sharing
  2. 8.Excel数据与指标概述
  3. C++分文件的编写函数
  4. vim 添加到右键 windows
  5. firefox下光标处插入文本
  6. JavaScript 实现Map效果
  7. Python:通过执行100万次打印来比较C和python的性能,以及用C和python结合来解决性能问题的方法 .
  8. 查看服务器大文件,linux 查看服务器大文件
  9. ansible源码解读
  10. 第七篇:A133 Android 10 触摸提示音过大
  11. 状态压缩dp学习小记part1
  12. Spring Boot:The field file exceeds its maximum permitted size of 1048576 bytes.
  13. 深圳大学使用路由器登陆校园网,openwrt登陆drcom,d版教程
  14. 设计师必看的十部电影
  15. unity 开发EasyAR发布IOS和安卓坑记录
  16. Hadoop 入门总结
  17. Discourse开源论坛搭建
  18. 粉条要经过什么检查才符合315?
  19. 【web前端】html+js实现流程进度展示条
  20. 靠着这Java面试210题,成功拿下了10多家国内知名大厂Offer,10万字精华全部分享给大家

热门文章

  1. 指针、野指针、指针常量、常量指针
  2. 【逻辑题】人与熊过河
  3. 穿越NAT的SDWAN技术实现(下)
  4. 英特尔下代安腾芯片全面揭秘
  5. 趁着快递还能发,赶紧把迪士尼礼盒带回家 | 钛空舱
  6. 请问你为什么学习Lisp?
  7. 1257: 田忌赛马
  8. 让IE浏览器支持HTML5标准的方法(转)
  9. 什么是前端的核心竞争力
  10. inline-block中居中元素