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

时间:2021-05-22

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

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

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 计算任意两向量之间的夹角方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章