python歐拉角和旋轉矩陣變換的實現(xiàn)示例
更新時間:2024年03月19日 10:38:43 作者:霸王?呂布
在計算機圖形學中,歐拉角和旋轉矩陣是描述物體旋轉的常用方法,本文主要介紹了python歐拉角和旋轉矩陣變換的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
一. 配置PIP鏡像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
二.下載numpy等庫
pip install scipy
三.歐拉角轉旋轉矩陣(右手坐標系, ZXY順序)
# coding=UTF-8 from scipy.spatial.transform import Rotation as R # 定義歐拉角 XYZ順序 euler_angles = [90, 3, 3] if (90 - abs(euler_angles[0])) < 0.5: euler_angles[0] = 89.5 euler_angles_zxy = [0, 0, 0] euler_angles_zxy[0] = euler_angles[2] euler_angles_zxy[1] = euler_angles[0] euler_angles_zxy[2] = euler_angles[1] euler_angles_zxy = [-x for x in euler_angles_zxy] # 創(chuàng)建Rotation對象 r = R.from_euler('zxy', euler_angles_zxy, degrees=True) # 獲取旋轉矩陣 rotation_matrix = r.as_dcm() print('[') for row in rotation_matrix: msg = ", ".join(map(str, row)) msg = '[' + msg + '],' print(msg) print(']')
四.旋轉矩陣轉歐拉角(右手坐標系, ZXY順序)
# coding=UTF-8 import numpy as np from scipy.spatial.transform import Rotation as R # 假設我們有一個旋轉矩陣 #80 -7 45 rotation_matrix = np.array([ [0.9945219996629926, 0.10452647320585942, -0.00045671157999537665], [-0.00045671157999537665, 0.008714576084760173, 0.9999619230641713], [0.10452647320585942, -0.9944839227271639, 0.008714576084760173] ]) # 使用SciPy的Rotation對象轉換歐拉角 rotation = R.from_dcm(rotation_matrix) euler_angles_zxy = rotation.as_euler('zxy', degrees=True) # sco存儲使用'zxy'順序,如果需要度為單位,設置degrees=True #左右手參考坐標系正負值替換 euler_angles_zxy = [-x for x in euler_angles_zxy] euler_angles = [0, 0, 0] euler_angles[0] = euler_angles_zxy[1] euler_angles[1] = euler_angles_zxy[2] euler_angles[2] = euler_angles_zxy[0] print(euler_angles)
到此這篇關于python歐拉角和旋轉矩陣變換的實現(xiàn)示例的文章就介紹到這了,更多相關python歐拉角和旋轉矩陣變換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
相關文章
PyCharm 安裝與使用配置教程(windows,mac通用)
很多小伙伴下載安裝PyCharm后不會使用,這篇文章詳細介紹了PyCharm安裝與使用教程(windows,mac通用),需要的朋友可以參考下2021-05-05Python科學計算環(huán)境推薦——Anaconda
最近在用Python做中文自然語言處理。使用的IDE是PyCharm。PyCharm確實是Python開發(fā)之首選,但用于科學計算方面,還略有欠缺。為此我嘗試過Enthought Canopy,但Canopy感覺把問題搞得復雜化,管理Python擴展也不太方便。直到今天我發(fā)現(xiàn)了 Anaconda 。2014-06-06使用selenium模擬動態(tài)登錄百度頁面的實現(xiàn)
本文主要介紹了使用selenium模擬動態(tài)登錄百度頁面,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05