四元数和旋转矩阵相互转换

news/2025/1/15 12:15:40/

四元数(Quaternions)和旋转矩阵是在三维空间中表示旋转的两种常见数学工具。

### 四元数和旋转矩阵相互转换import jax.numpy as jnp
import numpy as np
import math### 1. 角度和弧度相互转化
## 角度转弧度
degrees = 45
radians = math.radians(degrees)
print(f"{degrees} degrees is equal to {radians} radians")## 弧度转角度
radians = math.pi / 4
degrees = math.degrees(radians)
print(f"{radians} radians is equal to {degrees} degrees")### 2. 绕 x,y,z轴旋转一定角度的旋转矩阵
degrees = 45
θ = math.radians(degrees)# 绕x轴45度旋转的旋转矩阵
Rx = jnp.stack([jnp.array([1, 0, 0]),jnp.array([0, math.cos(θ), -math.sin(θ)]),jnp.array([0, math.sin(θ), math.cos(θ)])])print(f"绕x轴{degrees}度旋转的旋转矩阵为:{Rx}") # 绕y轴45度旋转的旋转矩阵
Ry = jnp.stack([jnp.array([math.cos(θ), 0, math.sin(θ)]),jnp.array([0, 1, 0]),jnp.array([-math.sin(θ), 0, math.cos(θ)])])print(f"绕y轴{degrees}度旋转的旋转矩阵为:{Ry}")                   # 绕z轴45度旋转的旋转矩阵    
Rz = jnp.stack([jnp.array([math.cos(θ), -math.sin(θ), 0]),jnp.array([math.sin(θ), math.cos(θ), 0]),jnp.array([0, 0, 1])])      print(f"绕z轴{degrees}度旋转的旋转矩阵为:{Rz}") ##### chatGPT代码 #####
### 3. 四元数和旋转矩阵相互转换-代码1def quaternion_to_rotation_matrix(q):"""Convert a quaternion to a 3x3 rotation matrix."""a, b, c, d = qreturn np.array([[a**2 + b**2 - c**2 - d**2, 2 * (b*c - a*d), 2 * (b*d + a*c)],[2 * (b*c + a*d), a**2 - b**2 + c**2

http://www.ppmy.cn/news/1342577.html

相关文章

PHP入门指南:起步篇

PHP入门指南:起步篇 PHP入门指南:起步篇什么是PHP?PHP 的优点PHP 开发环境搭建选择本地服务器软件包安装PHP环境配置Web服务器和PHP测试PHP安装 第一个PHP脚本PHP基础语法标记注释变量数据类型常量条件语句循环函数 PHP入门指南:起…

java之ReentrantLock

在讲RentrantLock之前需要先讲一下AQS和LockSupport,因为rentrantLock底层是用AQS实现的,而AQS中获取阻塞和唤醒底使用LockSupport实现的。 1、LockSupport实现 下面代码中,LockSupport.park方法是当前线程等待,直到获得许可&am…

引流技术-通过文件中增加联系方式并传播

文章目录 前言文档增加联系方式扩散网盘扩散自建网站借力 注意 前言 很多人在找资料的时候可能都遇到过下图情况: 1、文档最后面留一个自己的联系方式; 2、找的一堆文件中都有相同的情况; 3、一段时间全网搜到的很多相同文件也有这个联系方式…

Go语言学习踩坑记

go: go.mod file not found in current directory or any parent directory; see go help mod 解决 资源下载: 序号文件地址1 1、Go IDE liteidex38.3-win64-qt5.15.2.zip Release x38.3 visualfc/liteide GitHub2 2、Go语言的编译环境 go1.21.6.windows-amd64.m…

Ansible自动化工具(1)

目录 ansible的特性:. 二.部署ansible 管理端安装 ansible: ansible 目录结构: 管理主机上配置主机清单: ​编辑 配置密钥对验证: ansible 命令行模块 : 1.command 模块 指定 ip 执行…

【Linux网络编程三】Udp套接字编程网络应用场景

【Linux网络编程三】Udp套接字编程网络应用场景 应用场景一:远程命令执行应用场景二:与Windos端相互通信应用场景三:简单聊天1.多线程化2.输入输出分开 应用场景一:远程命令执行 简单的服务器上一篇已经完成,接下来我…

2023年全球软件开发大会(QCon上海站2023):核心内容与学习收获(附大会核心PPT下载)

在信息化和全球化日益加速的今天,软件开发技术日新月异,对全球各行各业产生了深远影响。2023年全球软件开发大会(QCon上海站2023)无疑成为行业内外瞩目的焦点。本次大会汇集了全球顶级的软件开发专家、企业领袖、研究者&#xff0…

adb 无线连接 操作Android设备

最近集五福活动比较热门 可以用这个工具 用自己擅长的语言写一个循环程序 运行起来就可以 自动帮我们 看视频得福卡了 很方便 while (true) {sleep(mt_rand(15, 25));system(adb shell input swipe 500 2000 500 1000 100); } 1. 首先下载 安卓开发工具 adb adb网盘链接 链接…