首页 > 编程 > Python > 正文

Python 计算任意两向量之间的夹角方法

2019-11-25 12:30:24
字体:
来源:转载
供稿:网友

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

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

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_angleang1 = 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的夹角55AB和EF的夹角139AB和PQ的夹角52CD和EF的夹角84CD和PQ的夹角107EF和PQ的夹角169

以上这篇Python 计算任意两向量之间的夹角方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表