#  -*- 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 四元数转欧拉角相关推荐

  1. 转换矩阵、平移矩阵、旋转矩阵关系以及python实现旋转矩阵、四元数、欧拉角之间转换

    文章目录 1. 转换矩阵.平移矩阵.旋转矩阵之间的关系 2. 缩放变换.平移变换和旋转变换 2. python实现旋转矩阵.四元数.欧拉角互相转化 由于在平时总是或多或少的遇到平移旋转的问题,每次都是 ...

  2. 在matlab和python if中的旋转变换(四元数、欧拉角、旋转矩阵)等

    在matlab和python tf中的旋转变换(四元数.欧拉角.旋转矩阵等) 目录 1. 基本的认识 2. 变换矩阵 3. 欧拉角 4. 四元数 5. matlab中相互转换 6. python tf ...

  3. 四元数和欧拉角的相互转换

    四元数转欧拉角&欧拉角转四元数程序:四元数转欧拉角&欧拉角转四元数程序. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

  4. eigen 编译_头条 | 使用eigen实现四元数、欧拉角、旋转矩阵、旋转向量间的转换...

    点击上方蓝字,关注本公众号,获得更多资源上一篇文章介绍了四元数.欧拉角.旋转矩阵.轴角如何相互转换,本篇文章介绍如何用eigen来实现. 旋转向量 1,初始化旋转向量:旋转角为alpha,旋转轴为(x ...

  5. 四元数,欧拉角,旋转矩阵相互转换

    #include <TransForms3d/TransForms.h>/*---------------------------------------角度弧度转换----------- ...

  6. 【飞控理论】【惯性导航基础】二维平面的旋转如何用代数表示?三维平面的旋转如何用代数表示?什么是四元数?四元数、欧拉角、方向余弦之间有什么关系?

    上一篇欧拉角 由于欧拉角在描述三维空间物体旋转问题时存在万向节死锁问题(详情戳这里),所以引入四元数概念. 目录 1.二维平面的旋转 2.三维平面的旋转(什么是四元数) 3.<捷联惯性导航> ...

  7. Matlab ——旋转矩阵,四元数,欧拉角之间的转换

    最近要用这方面的东西,整理,记录,分享一下 基于Matlab现有函数下的内容 Matlab --旋转矩阵,四元数,欧拉角之间的转换 旋转矩阵 dcm R 四元数 quat q = [q0 q1 q2 ...

  8. unity中的四元数,欧拉角,方向向量之间的相互转换方法。

    四元数: 到欧拉角:quaternion.eulerAngles 到方向向量:(quaternion * Vector3.forward).normalized 欧拉角: 到四元数:Quaternio ...

  9. unity 四元数和欧拉角的相互转换

    四元数和欧拉角相互转换 //四元数转化成欧拉角 Vector3 v3=transform.rotation.eulerAngles; //欧拉角转换成四元数 Quaternion rotation = ...

  10. 【Unity3D 灵巧小知识点】☀️ | Unity 四元数、欧拉角 与 方向向量 之间转换

    Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...

最新文章

  1. mysql常用转换函数_MySQL中常用转换函数介绍
  2. C 语言编程 — 函数
  3. 浏览器快捷键_用浏览器输入框代替Alfred - 介绍快速唤起浏览器输入框的方法,以及它能怎么取代 Alfred...
  4. OJ系列之---单词倒排
  5. 高效开发者是如何个性化VS Code插件与配置的?
  6. GTK+ 2.4 or later isn't available
  7. 员工转正申请书_网站建设人员的转正的申请书
  8. nodejs爬虫基础(二)
  9. 怎样将一个Long类型的数据转换成字节数组
  10. java聚集_深入理解JAVA中的聚集和组合的区别与联系
  11. 稀土储量由80%变成了35%?这是何等的。。。
  12. ⌊N/1⌋,⌊N/2⌋,...⌊N/N⌋的值的集合的分析
  13. 一种兼顾速度和效果的对比度增强算法——CONTRAST ENHANCEMENT BASED ON LAYERED DIFFERENCE REPRESENTATION
  14. 电视盒是计算机网络连接设备,电视盒子怎么连接电脑
  15. VS Code中点击Tab键突然不能缩进了
  16. 计算机休眠后黑屏打不开,电脑待机后黑屏打不开怎么办
  17. 利用燕尾花数据集画出P-R曲线
  18. 【MySQL】mysql数据库操作指南
  19. 鼠标滚轮调节音量 (含程序和源程序下载)
  20. 苹果5s参数_这次,苹果自己革了自己的命---iPhone12发布会全纪实

热门文章

  1. 手机查看IGES,STP,STEP文件APP推荐-Glovius
  2. GitHub:基于搜狗微信搜索的微信公众号爬虫接口
  3. 【汉化】使用gettext和poedit对xibo-mo文件进行汉化编辑
  4. EMC信号完整性落地实测1---走出玄学
  5. 华为证书有效期是多久?证书要到期了怎么办?
  6. 隐藏软键盘与弹窗总结
  7. 怎么在MATLAB中看奈氏图的S平面,MATLAB频域分析,奈氏图、伯德图、对数幅相图绘制...
  8. Hexo+Next主题的一些实用插件和美化升级
  9. 记一次基于公众号的微信H5开发项目(一)
  10. S3存储服务间数据同步工具Rclone介绍