最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 求兩個向量的順時針夾角操作

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

以上述圖片舉例,要求 相對 的順時針夾角。注意:這里使用圖像坐標(biāo)系

1 定義求順時針角度的函數(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

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

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

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

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

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

根據(jù)定義可以通過向量的坐標(biāo)計算外積

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

所以等式兩邊的標(biāo)量相等可以求夾角rho。

rho 是帶正負號的和旋轉(zhuǎn)方向有關(guān),但是范圍在 -90 ~ 90度。

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

這里面順時針旋轉(zhuǎn)為負,逆時針旋轉(zhuǎn)為正。

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))
'''
結(jié)果
(-45.00000000000001, -90.0, -135.0, 180.0, 135.0, 90.0, 45.00000000000001)
'''

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

相關(guān)文章

  • Python中bisect的用法及示例詳解

    Python中bisect的用法及示例詳解

    這篇文章主要介紹了Python中bisect的用法及示例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • IDA Pro 6.0使用Qt框架實現(xiàn)了跨平臺的UI界面

    IDA Pro 6.0使用Qt框架實現(xiàn)了跨平臺的UI界面

    通過本文帶領(lǐng)大家學(xué)習(xí)如何使用PySide使用IDAPython為 IDA Pro 創(chuàng)建 UI 界面,對IDA Pro 6.0使用Qt 框架實現(xiàn)了跨平臺的UI相關(guān)知識感興趣的朋友一起看看吧
    2021-07-07
  • Python基于最小二乘法實現(xiàn)曲線擬合示例

    Python基于最小二乘法實現(xiàn)曲線擬合示例

    這篇文章主要介紹了Python基于最小二乘法實現(xiàn)曲線擬合,涉及Python基于numpy及scipy庫進行曲線擬合操作相關(guān)運算技巧,需要的朋友可以參考下
    2018-06-06
  • Python自動化測試框架之unittest使用詳解

    Python自動化測試框架之unittest使用詳解

    unittest是Python自動化測試框架之一,提供了一系列測試工具和接口,支持單元測試、功能測試、集成測試等多種測試類型。unittest使用面向?qū)ο蟮乃枷雽崿F(xiàn)測試用例的編寫和管理,可以方便地擴展和定制測試框架,支持多種測試結(jié)果輸出格式
    2023-04-04
  • 30秒學(xué)會30個超實用Python代碼片段【收藏版】

    30秒學(xué)會30個超實用Python代碼片段【收藏版】

    許多人在數(shù)據(jù)科學(xué)、機器學(xué)習(xí)、web開發(fā)、腳本編寫和自動化等領(lǐng)域中都會使用Python,它是一種十分流行的語言。本文將簡要介紹30個簡短的、且能在30秒內(nèi)掌握的代碼片段,感興趣的朋友一起看看吧
    2019-10-10
  • python無法識別vim中文代碼的解決方案

    python無法識別vim中文代碼的解決方案

    這篇文章主要介紹了python無法識別vim中文代碼的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 簡單的抓取淘寶圖片的Python爬蟲

    簡單的抓取淘寶圖片的Python爬蟲

    這篇文章主要介紹了簡單的抓取淘寶圖片的Python爬蟲,方法比較簡單,推薦給小伙伴們參考下。
    2014-12-12
  • Django中多用戶角色和權(quán)限管理的實現(xiàn)步驟

    Django中多用戶角色和權(quán)限管理的實現(xiàn)步驟

    定義用戶角色模型:首先,定義一個用戶角色模型,該模型表示不同的用戶角色,例如管理員、普通用戶、編輯等,這篇文章主要介紹了Django中多用戶角色和權(quán)限管理的實現(xiàn)步驟,需要的朋友可以參考下
    2024-05-05
  • Python?seaborn數(shù)據(jù)可視化繪圖(直方圖,密度圖,散點圖)

    Python?seaborn數(shù)據(jù)可視化繪圖(直方圖,密度圖,散點圖)

    這篇文章主要介紹了Python?seaborn數(shù)據(jù)可視化繪圖(直方圖,密度圖,散點圖),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-07-07
  • Python學(xué)習(xí)筆記之解析json的方法分析

    Python學(xué)習(xí)筆記之解析json的方法分析

    這篇文章主要介紹了Python解析json的方法,結(jié)合實例形式分析了常見的Python解析與轉(zhuǎn)換json格式數(shù)據(jù)相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04

最新評論

南宫市| 长武县| 临泽县| 邹城市| 罗山县| 临清市| 台山市| 独山县| 门源| 阿勒泰市| 杭锦后旗| 延庆县| 方正县| 惠来县| 德阳市| 象州县| 陆丰市| 邵阳市| 虎林市| 合山市| 灵台县| 武川县| 宾阳县| 聂荣县| 肇州县| 中牟县| 延庆县| 东明县| 廉江市| 武威市| 西林县| 山阳县| 射阳县| 扬州市| 通榆县| 施秉县| 永年县| 繁昌县| 重庆市| 开封县| 瑞安市|