热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

2021.1.19如何直观理解四元数

如何直观理解四元数1、首先提供一份很好的视频素材,来自B站的3Blue1Brown官方视频号,其中还有很多数学知识讲解很有用。https:www.b

如何直观理解四元数


1、首先提供一份很好的视频素材,来自B站的3Blue1Brown官方视频号,其中还有很多数学知识讲解很有用。

https://www.bilibili.com/video/BV1SW411y7W1
在这里插入图片描述


2、记录一下

a) 四元数是用来干什么的?
目前我的理解是一个四维位空间的旋转因子,与二维空间的旋转因子i(虚数单位)一样。
b) 如何理解
1)首先从二维坐标开始(实数+几何),在此时二维坐标也可以看作一个复平面在这里插入图片描述
在上述的图片当中2.35+3.14i,这个向量相当于乘上一个实数并旋转了4+5i这个向量的角度(使用反余弦函数可以求解)。

在这里插入图片描述

在这里插入图片描述也就是说在一个二维坐标平面当中(复平面),横坐标表示实数a,纵坐标表示虚数b,那么找到一个单位圆(实数为1、虚数单位也为1)这个时候在数字的左边乘虚数i就相当于逆时针旋转90度。在投影线上相当于从0~ -i,从i~ 正无穷,从负无穷~-i,再从-i ~ 0。


这里讲解了一个概念----球极投影:

在二维平面内从-1这个点出发画到单位圆上所有点的射线,射线和纵坐标交点为该点在坐标轴上的投影,越靠近-1点的半圆在坐标轴上的投影就越趋向无穷远。
在三维空间坐标系上也是使用这种进行推理,就可以将原来的球面按照-1开始向整个球面发射射线取j、i两个坐标轴,展开,会得到两个直线。
在这里插入图片描述2)在这个三维坐标里存在这样的旋转规律:
1左乘j就在x-j的平面内做旋转
1左乘i就在x-i的平面左旋转
i左乘j就在i-j的平面旋转
区别是旋转的方向不同
在这里插入图片描述3)四元数就是在一个实数加三个虚数
在这里插入图片描述
在四元数当中的虚数关系
在这里插入图片描述
同样的四元数所在的空间就是在三维空间上再添加一个维度,三维空间是一个单位球面,此时为一个单位球体。
以一个四元数左乘i为例,相当于在i轴上进行从0到i到正无穷再到负无穷到-i在到0;在与i轴垂直的平面上进行单位圆的旋转(右手定理:拇指指向i正向四指指向为单位圆旋转方向),而四元数的直观则是超级球面沿着垂直i的面进行外翻,一个轮回结束,也就是乘四次i之后球面两次外翻恢复原状。

在这里插入图片描述


推荐阅读
  • Android 手机安全应用首屏布局设计
    本文详细介绍了如何构建一个功能丰富的手机安全应用的首个导航界面布局。通过实例代码和效果展示,帮助开发者快速理解和实现相关功能。 ... [详细]
  • 一、数据更新操作DML语法中主要包括两个内容:查询与更新,更新主要包括:增加数据、修改数据、删除数据。其中这些操作是离不开查询的。1、增加数据语法:INSERTINTO表名称[(字 ... [详细]
  • Python3兼容性提升:Robot Framework与RIDE的最新进展
    本文介绍了Robot Framework,一个基于Python的自动化测试框架,以及其配套IDE RIDE的最新更新。随着Python3的广泛采用,RIDE终于实现了对Python3的支持,这为Robot Framework的用户带来了福音。 ... [详细]
  • 为了增强服务器的安全性,管理员可以通过SSH进行精细的访问控制。本文将介绍两种有效的方法来限制用户从特定IP地址登录,包括更改默认端口和设置允许访问的IP列表。 ... [详细]
  • Shiro功能拓展:登录失败重试次数限制
    本文详细介绍了如何在Apache Shiro框架中实现对用户登录失败重试次数的限制,通过自定义密码匹配器来增强系统的安全性。该方法不仅能够有效防止暴力破解攻击,还能确保合法用户的账户安全。 ... [详细]
  • 本文档详细介绍了Robot Framework的基础知识、安装配置方法及其实用技巧。从环境搭建到编写第一个测试用例,涵盖了一系列实用的操作指南和最佳实践。 ... [详细]
  • 本文介绍了一个使用Keras框架构建的卷积神经网络(CNN)实例,主要利用了Keras提供的MNIST数据集以及相关的层,如Dense、Dropout、Activation等,构建了一个具有两层卷积和两层全连接层的CNN模型。 ... [详细]
  • 本文由郭孝星撰写,详细介绍了Android-ConvenientBanner的功能与使用方法,并对其源码进行了深入分析。 ... [详细]
  • Flutter入门指南:实现自动关闭的对话框与提示
    本文为Flutter系列教程的一部分,专注于讲解如何在Flutter应用中实现自动关闭的对话框和提示。通过具体的代码示例,帮助开发者掌握SnackBar、BottomSheet和Dialog的使用方法。 ... [详细]
  • 使用Python轻松合并大量复杂Excel文件
    当面对大量的Excel文件时,如何高效地将它们合并成一个文件成为了一项挑战。本文将指导初学者如何利用Python的几个库,在几十行代码内完成这一任务。 ... [详细]
  • 手把手教你构建简易JSON解析器
    本文将带你深入了解JSON解析器的构建过程,通过实践掌握JSON解析的基本原理。适合所有对数据解析感兴趣的开发者。 ... [详细]
  • Java WebSocket 实时通信服务端实现
    本文介绍了一个基于Java的WebSocket实时通信服务端代码示例,包括客户端连接管理、消息接收与分发等功能。 ... [详细]
  • 本文详细介绍了 C# 编程语言中 Main 方法的作用、不同形式及其使用场景,帮助开发者更好地理解和应用这一重要概念。 ... [详细]
  • 转载网址:http:www.open-open.comlibviewopen1326597582452.html参考资料:http:www.cocos2d-ip ... [详细]
  • 导读上一篇讲了zsh的常用字符串操作,这篇开始讲更为琐碎的转义字符和格式化输出相关内容。包括转义字符、引号、print、printf的使用等等。其中很多内容没有必要记忆,作为手册参 ... [详细]
author-avatar
mobiledu2502934191
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有