溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python 求兩個向量的順時針夾角怎么做

發布時間:2021-03-04 15:47:22 來源:億速云 閱讀:1301 作者:TREX 欄目:開發技術

本篇內容主要講解“python 求兩個向量的順時針夾角怎么做”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python 求兩個向量的順時針夾角怎么做”吧!

python 求兩個向量的順時針夾角怎么做

以上述圖片舉例,要求 python 求兩個向量的順時針夾角怎么做 相對 python 求兩個向量的順時針夾角怎么做 的順時針夾角。注意:這里使用圖像坐標系

1 定義求順時針角度的函數

import numpy as np
def clockwise_angle(v1, v2):
 x1,y1 = v1
 x2,y2 = v2
 dot = x1*x2+y1*y2
 det = x1*y2-y1*x2
 theta = np.arctan2(det, dot)
 theta = theta if theta>0 else 2*np.pi+theta
 return theta

2 求 python 求兩個向量的順時針夾角怎么做 , 然后求夾角 python 求兩個向量的順時針夾角怎么做

v1 = [2-0, 1-0] = [2,1]
v2 = [4-0, 5-0] = [4,5]
theta = clockwise_angle(v1,v2)
print(theta*180/np.pi) # 24.77

python 求兩個向量的順時針夾角怎么做

補充:求2個向量順逆時針(最小角度)旋轉角度 Python

求向量 a 旋轉到向量 b 的順時針(逆時針)最小角度。

正常求2個向量夾角用內積公式就可以計算,然而求得的結果不包含方向信息。

如果需要方向信息的話需要引入向量的外積來幫助我們判斷。

python 求兩個向量的順時針夾角怎么做

theta是兩個向量的夾角,n是垂直與2維平面的方向向量,由右手定則可以判斷方向。

根據定義可以通過向量的坐標計算外積

python 求兩個向量的順時針夾角怎么做

這里面由于u,v是二維平面上的向量, u3 v3 都為0。 所以 u叉乘v = (u1v2 - u2v1)*K。

所以等式兩邊的標量相等可以求夾角rho。

rho 是帶正負號的和旋轉方向有關,但是范圍在 -90 ~ 90度。

可以通過rho正負號,結合向量的點乘重新計算帶方向的夾角。

這里面順時針旋轉為負,逆時針旋轉為正。

def GetClockAngle(v1, v2):
 # 2個向量模的乘積
 TheNorm = np.linalg.norm(v1)*np.linalg.norm(v2)
 # 叉乘
 rho = np.rad2deg(np.arcsin(np.cross(v1, v2)/TheNorm))
 # 點乘
 theta = np.rad2deg(np.arccos(np.dot(v1,v2)/TheNorm))
 if rho < 0:
  return - theta
 else:
  return theta
a = [0,1]
b = [1,0]
c = [-1,0]
d = [0, -1]
e = [-1, -1]
f = [1, -1]
g = [1, 1]
h = [-1, 1]
print(GetClockAngle(a,g), GetClockAngle(a,b), GetClockAngle(a,f), GetClockAngle(a,d), \
 GetClockAngle(a,e), GetClockAngle(a,c), GetClockAngle(a,h))
'''
結果
(-45.00000000000001, -90.0, -135.0, 180.0, 135.0, 90.0, 45.00000000000001)
'''

python 求兩個向量的順時針夾角怎么做

到此,相信大家對“python 求兩個向量的順時針夾角怎么做”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女