您好,登錄后才能下訂單哦!
如圖所示,我們要計算任意兩個向量之間的夾角。
(圖中的坐標數字是估計值,隨手給定)
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 計算任意兩向量之間的夾角方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。