本篇內(nèi)容主要講解“python 求兩個(gè)向量的順時(shí)針夾角怎么做”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“python 求兩個(gè)向量的順時(shí)針夾角怎么做”吧!
以上述圖片舉例,要求 相對(duì)
的順時(shí)針夾角。注意:這里使用圖像坐標(biāo)系
1 定義求順時(shí)針角度的函數(shù)
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 求 , 然后求夾角
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
補(bǔ)充:求2個(gè)向量順逆時(shí)針(最小角度)旋轉(zhuǎn)角度 Python
求向量 a 旋轉(zhuǎn)到向量 b 的順時(shí)針(逆時(shí)針)最小角度。
正常求2個(gè)向量夾角用內(nèi)積公式就可以計(jì)算,然而求得的結(jié)果不包含方向信息。
如果需要方向信息的話需要引入向量的外積來(lái)幫助我們判斷。
theta是兩個(gè)向量的夾角,n是垂直與2維平面的方向向量,由右手定則可以判斷方向。
根據(jù)定義可以通過(guò)向量的坐標(biāo)計(jì)算外積
這里面由于u,v是二維平面上的向量, u3 v3 都為0。 所以 u叉乘v = (u1v2 - u2v1)*K。
所以等式兩邊的標(biāo)量相等可以求夾角rho。
rho 是帶正負(fù)號(hào)的和旋轉(zhuǎn)方向有關(guān),但是范圍在 -90 ~ 90度。
可以通過(guò)rho正負(fù)號(hào),結(jié)合向量的點(diǎn)乘重新計(jì)算帶方向的夾角。
這里面順時(shí)針旋轉(zhuǎn)為負(fù),逆時(shí)針旋轉(zhuǎn)為正。
def GetClockAngle(v1, v2): # 2個(gè)向量模的乘積 TheNorm = np.linalg.norm(v1)*np.linalg.norm(v2) # 叉乘 rho = np.rad2deg(np.arcsin(np.cross(v1, v2)/TheNorm)) # 點(diǎn)乘 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)) ''' 結(jié)果 (-45.00000000000001, -90.0, -135.0, 180.0, 135.0, 90.0, 45.00000000000001) '''
到此,相信大家對(duì)“python 求兩個(gè)向量的順時(shí)針夾角怎么做”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
本文題目:python求兩個(gè)向量的順時(shí)針夾角怎么做-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.aaarwkj.com/article47/dsdohj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)、品牌網(wǎng)站建設(shè)、App開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容