python 四元数转欧拉角
# -*- coding=utf-8 -*-
import math
import numpy as np# 欧拉角转四元数
while(1):which_mode = input("欧拉角转四元数输入1,四元数转欧拉角输入2。\n请输入:")if(which_mode == "1"):print("\n源坐标系到目标坐标系旋转顺序为X,Y,Z,左手系.")r = float(input("绕x轴旋转角度:"))p = float(input("绕y轴旋转角度:"))y = float(input("绕z轴旋转角度:"))sinp = math.sin(math.radians(p/2))siny = math.sin(math.radians(y/2))sinr = math.sin(math.radians(r/2))cosp = math.cos(math.radians(p/2))cosy = math.cos(math.radians(y/2))cosr = math.cos(math.radians(r/2))w = cosr*cosp*cosy + sinr*sinp*sinyx = sinr*cosp*cosy - cosr*sinp*sinyy = cosr*sinp*cosy + sinr*cosp*sinyz = cosr*cosp*siny - sinr*sinp*cosyprint("x : {}".format(x))print("y : {}".format(y))print("z : {}".format(z))print("w : {}".format(w))elif(which_mode == "2"):print("请按顺序输入4元数")x = input("x:")y = input("y:")z = input("z:")w = input("w:")x = float(x)y = float(y)z = float(z)w = float(w)r = math.atan2(2 * (w * x + y * z), 1 - 2 * (x * x + y * y))r = r / math.pi * 180p = math.asin(2 * (w * y - z * x))p = p / math.pi * 180y = math.atan2(2 * (w * z + x * y), 1 - 2 * (y * y + z * z))y = y / math.pi * 180print("\n源坐标系到目标坐标系旋转顺序为X,Y,Z,左手系.")print("绕x轴旋转角度: {}".format(r))print("绕y轴旋转角度: {}".format(p))print("绕z轴旋转角度: {}\n".format(y))
PLUS
scipy库里自带的函数
四元数 -> 欧拉角
欧拉角->四元数
欧拉角->旋转矩阵
原坐标系到目标坐标系 , 右手系, 内旋(绕固定轴)
from scipy.spatial.transform import Rotation as Rdef quaternion2euler(quaternion):r = R.from_quat(quaternion)euler = r.as_euler('xyz', degrees=True)return eulerdef euler2quaternion(euler):r = R.from_euler('xyz', euler, degrees=True)quaternion = r.as_quat()return quaterniondef euler2rotation(euler):r = R.from_euler('xyz', euler, degrees=True)rotation_matrix = r.as_dcm()return rotation_matrix
python 四元数转欧拉角相关推荐
- 转换矩阵、平移矩阵、旋转矩阵关系以及python实现旋转矩阵、四元数、欧拉角之间转换
文章目录 1. 转换矩阵.平移矩阵.旋转矩阵之间的关系 2. 缩放变换.平移变换和旋转变换 2. python实现旋转矩阵.四元数.欧拉角互相转化 由于在平时总是或多或少的遇到平移旋转的问题,每次都是 ...
- 在matlab和python if中的旋转变换(四元数、欧拉角、旋转矩阵)等
在matlab和python tf中的旋转变换(四元数.欧拉角.旋转矩阵等) 目录 1. 基本的认识 2. 变换矩阵 3. 欧拉角 4. 四元数 5. matlab中相互转换 6. python tf ...
- 四元数和欧拉角的相互转换
四元数转欧拉角&欧拉角转四元数程序:四元数转欧拉角&欧拉角转四元数程序. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...
- eigen 编译_头条 | 使用eigen实现四元数、欧拉角、旋转矩阵、旋转向量间的转换...
点击上方蓝字,关注本公众号,获得更多资源上一篇文章介绍了四元数.欧拉角.旋转矩阵.轴角如何相互转换,本篇文章介绍如何用eigen来实现. 旋转向量 1,初始化旋转向量:旋转角为alpha,旋转轴为(x ...
- 四元数,欧拉角,旋转矩阵相互转换
#include <TransForms3d/TransForms.h>/*---------------------------------------角度弧度转换----------- ...
- 【飞控理论】【惯性导航基础】二维平面的旋转如何用代数表示?三维平面的旋转如何用代数表示?什么是四元数?四元数、欧拉角、方向余弦之间有什么关系?
上一篇欧拉角 由于欧拉角在描述三维空间物体旋转问题时存在万向节死锁问题(详情戳这里),所以引入四元数概念. 目录 1.二维平面的旋转 2.三维平面的旋转(什么是四元数) 3.<捷联惯性导航> ...
- Matlab ——旋转矩阵,四元数,欧拉角之间的转换
最近要用这方面的东西,整理,记录,分享一下 基于Matlab现有函数下的内容 Matlab --旋转矩阵,四元数,欧拉角之间的转换 旋转矩阵 dcm R 四元数 quat q = [q0 q1 q2 ...
- unity中的四元数,欧拉角,方向向量之间的相互转换方法。
四元数: 到欧拉角:quaternion.eulerAngles 到方向向量:(quaternion * Vector3.forward).normalized 欧拉角: 到四元数:Quaternio ...
- unity 四元数和欧拉角的相互转换
四元数和欧拉角相互转换 //四元数转化成欧拉角 Vector3 v3=transform.rotation.eulerAngles; //欧拉角转换成四元数 Quaternion rotation = ...
- 【Unity3D 灵巧小知识点】☀️ | Unity 四元数、欧拉角 与 方向向量 之间转换
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...
最新文章
- mysql常用转换函数_MySQL中常用转换函数介绍
- C 语言编程 — 函数
- 浏览器快捷键_用浏览器输入框代替Alfred - 介绍快速唤起浏览器输入框的方法,以及它能怎么取代 Alfred...
- OJ系列之---单词倒排
- 高效开发者是如何个性化VS Code插件与配置的?
- GTK+ 2.4 or later isn't available
- 员工转正申请书_网站建设人员的转正的申请书
- nodejs爬虫基础(二)
- 怎样将一个Long类型的数据转换成字节数组
- java聚集_深入理解JAVA中的聚集和组合的区别与联系
- 稀土储量由80%变成了35%?这是何等的。。。
- ⌊N/1⌋,⌊N/2⌋,...⌊N/N⌋的值的集合的分析
- 一种兼顾速度和效果的对比度增强算法——CONTRAST ENHANCEMENT BASED ON LAYERED DIFFERENCE REPRESENTATION
- 电视盒是计算机网络连接设备,电视盒子怎么连接电脑
- VS Code中点击Tab键突然不能缩进了
- 计算机休眠后黑屏打不开,电脑待机后黑屏打不开怎么办
- 利用燕尾花数据集画出P-R曲线
- 【MySQL】mysql数据库操作指南
- 鼠标滚轮调节音量 (含程序和源程序下载)
- 苹果5s参数_这次,苹果自己革了自己的命---iPhone12发布会全纪实
热门文章
- 手机查看IGES,STP,STEP文件APP推荐-Glovius
- GitHub:基于搜狗微信搜索的微信公众号爬虫接口
- 【汉化】使用gettext和poedit对xibo-mo文件进行汉化编辑
- EMC信号完整性落地实测1---走出玄学
- 华为证书有效期是多久?证书要到期了怎么办?
- 隐藏软键盘与弹窗总结
- 怎么在MATLAB中看奈氏图的S平面,MATLAB频域分析,奈氏图、伯德图、对数幅相图绘制...
- Hexo+Next主题的一些实用插件和美化升级
- 记一次基于公众号的微信H5开发项目(一)
- S3存储服务间数据同步工具Rclone介绍