欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 求兩個(gè)向量的順時(shí)針夾角操作

 更新時(shí)間:2021年03月04日 14:35:35   作者:baoxin1100  
這篇文章主要介紹了python 求兩個(gè)向量的順時(shí)針夾角操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

以上述圖片舉例,要求 相對(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é)果不包含方向信息。

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

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

根據(jù)定義可以通過向量的坐標(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度。

可以通過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)
'''

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Python Selenium中常用的元素定位方法總結(jié)

    Python Selenium中常用的元素定位方法總結(jié)

    在Web自動(dòng)化測(cè)試中,元素定位是一項(xiàng)非常重要的技術(shù),Python Selenium提供了各種元素定位方法,可以幫助我們定位頁面上的元素并與之交互,本文將詳細(xì)介紹Python Selenium中常用的元素定位方法,并提供實(shí)例代碼,需要的朋友可以參考下
    2023-11-11
  • python實(shí)現(xiàn)TCP文件傳輸

    python實(shí)現(xiàn)TCP文件傳輸

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)TCP文件傳輸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 利用python 下載bilibili視頻

    利用python 下載bilibili視頻

    這篇文章主要介紹了利用python 下載bilibili視頻,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • Python學(xué)習(xí)之基礎(chǔ)語法介紹

    Python學(xué)習(xí)之基礎(chǔ)語法介紹

    大家好,本篇文章主要講的是Python學(xué)習(xí)之基礎(chǔ)語法介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python正確調(diào)用 jar 包加密得到加密值的操作方法

    Python正確調(diào)用 jar 包加密得到加密值的操作方法

    這篇文章主要介紹了Python 正確調(diào)用 jar 包加密得到加密值的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • pandas中字典和dataFrame的相互轉(zhuǎn)換

    pandas中字典和dataFrame的相互轉(zhuǎn)換

    有時(shí)候需要把dic轉(zhuǎn)換為DataFrame格式,便于查看和存儲(chǔ),下面這篇文章主要給大家介紹了關(guān)于pandas中字典和dataFrame相互轉(zhuǎn)換的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 如何利用python發(fā)送郵件

    如何利用python發(fā)送郵件

    這篇文章主要介紹了如何利用python發(fā)送郵件,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • python實(shí)現(xiàn)畫循環(huán)圓

    python實(shí)現(xiàn)畫循環(huán)圓

    今天小編就為大家分享一篇python實(shí)現(xiàn)畫循環(huán)圓,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 詳解python polyscope庫(kù)的安裝和例程

    詳解python polyscope庫(kù)的安裝和例程

    這篇文章主要介紹了python polyscope庫(kù)的安裝和例程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python下載ts文件視頻且合并的操作方法

    Python下載ts文件視頻且合并的操作方法

    ts文件,ts即"Transport?Stream"的縮寫,特點(diǎn)就是要求從視頻流的任一片段開始都是可以獨(dú)立解碼的,非常適合網(wǎng)絡(luò)視頻播放,這篇文章主要介紹了Python下載ts文件視頻且合并,需要的朋友可以參考下
    2023-01-01

最新評(píng)論