将四元数拆分为轴旋转

2023-12-07

我有一个代表物体方向的四元数(黄色框和球体)。我想知道是否可以将该四元数拆分为其他四元数,从而为我们提供每个局部轴(X、Y 和 Z)的旋转。

Due to I do not have enough reputation to post images directly, I have to put just the link of the image

到目前为止我一直在做的是获取欧拉表示并使用它,但这不是我的特定情况的正确解决方案:

给定两个点(蓝色框),我想限制对象的方向,以便它不能指向灰色平面之外,即使我的四元数看起来不在该平面之外。
我想分割(分解)四元数,因为当我的对象达到平面的极限(例如右侧)时,我想让它留在那里(在该组件中),然后在垂直组件中旋转我的对象,使用新的分割四元数之一。

我正在与 Unity 合作。

我希望我的问题可以理解:)


这是一种获取 y 轴局部旋转的方法。可以修改此函数以获得 x 或 z 轴。

/// <summary> isolate the y-Component of a rotation </summary>
private Quaternion yRotation(Quaternion q)
{
    float theta = Mathf.Atan2(q.y, q.w);

    // quaternion representing rotation about the y axis
    return new Quaternion(0, Mathf.Sin(theta), 0, Mathf.Cos(theta));
}

您可以通过转换为 Euler 在 Unity 检查器中验证结果:

public float yLocal;
void Update()
{
    yLocal = yRotation(this.transform.rotation).eulerAngles.y;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将四元数拆分为轴旋转 的相关文章

  • 在我的 Unity 应用程序中检测来电

    我试图让我的游戏在接到电话时暂停 我想知道我使用的任何函数是否可以做到这一点 我在我的源代码中使用了它们 但它们都不起作用 void OnApplicationPause bool paused if paused true if isPa
  • 使用 Unity 在 C# 中发送 http 请求

    如何使用 Unity 在 C 中发送 HTTP GET 和 POST 请求 我想要的是 在post请求中发送json数据 我使用Unity序列化器 所以不需要 新的 我只想在发布数据中传递一个字符串并且能够 将 ContentType 设置
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • strtok - 如何避免换行并放入字符串数组?

    如果我欺骗了主题 我真的很抱歉 我在这里搜索但没有结果 我有代码 void split char str char splitstr char p char splitbuf 32 int i 0 p strtok str while p
  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • 在bash脚本中分割字符串[重复]

    这个问题在这里已经有答案了 我想分割一个字符串并需要其中的一些参数 USER dn uid dfl3030 cn users cn accounts dc tenant dc ycs dc io cn Reb Lena Schmidt kr
  • 当我“绘制”线条时,如何将点平均分配到 LineRenderer 的宽度曲线?

    我正在使用线条渲染器创建一个 绘图 应用程序 现在我尝试使用线条渲染器上的宽度曲线启用笔压 问题在于 AnimationCurve 的 时间 值 水平轴 从 0 标准化为 1 因此我不能在每次添加位置时都在其末尾添加一个值 除非有一个我不知
  • 在pygame中旋转矩形(不是图像)

    在 pygame 中我使用pygame draw rect screen color rectangle 对于我的程序中的所有矩形 我希望能够将这些矩形旋转到任何角度 我看过下面的代码来旋转IMAGES但我的问题是矩形 pygame tra
  • 你好,我最近正在开发我的新游戏,我遇到了*无限跳跃*的问题

    所以基本上当我按跳跃 空格键时我会跳跃但是如果我连续按空格键它 只是跳啊跳啊跳等等 我不想要我只想它跳一次 code if Input GetKeyDown space isGrounded velocity y Mathf Sqrt ju
  • 有没有办法将 C# 通用字典拆分为多个字典?

    我有一本 C 字典Dictionary
  • 在 Chrome 中使用 webkit-transform 旋转时出现不稳定的文本抗锯齿效果

    我正在使用旋转元素 webkit transform rotate 在 Chrome 14 0 835 2 dev m 中 它对元素内的文本做了一些非常奇怪的事情 它让我想起了在 Photoshop 中使用 平滑 抗锯齿而不是 清晰 旋转文
  • Unity c# 四元数:将 y 轴与 z 轴交换

    我需要旋转一个对象以相对于现实世界进行精确旋转 因此调用Input gyro attitude返回表示设备位置的四元数 另一方面 这迫使我根据这个四元数作为默认旋转来计算每个旋转 将某些对象设置为朝上的简单方法如下 Vector3 up I
  • 递归分割列表函数 LISP

    split list 函数接受一个列表并返回一个由两个列表组成的列表 其中两个列表由输入的交替元素组成 我写了以下内容 defun split list L cond endp L list NIL NIL t let X split li
  • 使用 Unity3D 按钮执行 xcode 函数?

    是否可以在 unity 中制作一个按钮来执行 Xcode 中的功能 我正在尝试执行来自 unity3d 项目的推送消息 请帮忙 因为这让我发疯 提前致谢 是的 您可以调用具有 C 接口的本机 Objective C 代码 您甚至可以在 Un
  • Unity3D如何连接NavMesh和NavMeshAgent

    我在编辑器中收到此错误 SetDestination can only be called on an active agent that has been placed on a NavMesh 这些是我在解决问题时尝试的步骤 将 Nav
  • R strsplit:根据字符分割,除非后面有特定字符

    假设我有一个字符串向量 例如 split these c File Location C Documents File Location Pete s Computer File Location 我想根据 分割该向量中的每个元素 除非后面
  • 如何检测手机一整圈(360 度)?

    由于我在网络上搜索没有找到任何相关答案 因此我发布了有关检测的问题360度转弯使用加速度计绕其轴的 Android 设备 例如 在横向模式下围绕 y 轴 假设在起始位置 y 值为 0 设备平坦于地面 当手机向前旋转 90 度时y 10 18
  • java绕中心旋转矩形

    我想围绕其中心点旋转一个矩形 它应该保留在应该绘制的位置并在该空间中旋转 这是我的代码 AffineTransform transform new AffineTransform transform rotate Math toRadian
  • Perl 拆分和正则表达式

    我有以下字符串 100 California Grown Olives Water Salt And Ferrous Gluconate An Iron Derivative asasd sadasda 我想把它分开 but only if
  • 使texture2D在运行时/脚本Unity3D中可读[重复]

    这个问题在这里已经有答案了 我有一个插件 可以让我访问 Android 手机图库中的图片 这给了我一个Texture2D类型的纹理 然后我想使用 GetPixels 函数对其进行编辑 但默认情况下它未设置为可读 如何使纹理可读 以便我可以在

随机推荐

  • 这个命名变量是如何工作的?

    我是Python的初学者 我发现了一种奇怪的变量命名方式 并且根本无法理解 有人能帮助我吗 x 1 n 1 1 3 for i in n y x x i 我想理解这一行y x x i这是什么意思 这称为元组拆包 右边只是一个元组 表达式中的
  • 多线程内的 OpenGL VBO

    我正在用 C OpenGL 开发一个程序 它可以绘制整个世界的地形 我有一个以图块形式存储的海拔高度数据库 每次启动程序时 都会加载一个图块 然后 当人移动时 应该加载另一个图块 这不会每帧都发生 可能每 5 分钟一次 我将初始图块加载到显
  • 检查循环(模 16)数是否大于另一个?

    我有两个以 16 为模的循环整数 因此它们的值介于 0 到 15 之间 我需要比较两个数字以确定是否n 1大于n 0 n 1 gt n 0 显然 这没有准确定义 所以我定义n 1大于n 0如果小于前面8个 数字 否则小于n 0 如果不相等
  • 在 F# 中通过声明性映射指定函数组合

    The Clojure Prismatic Plumbing 库可以用来提供应用程序或模块函数图的声明性和显式定义 简而言之 它提供了一种将每个函数指定为带有标签的节点的方法 该标签也是输出标签 带标签的输入和实现 为此 它使用在宏中定义的
  • 如何通过 jQuery 隐藏控件组?

    在我的 Sharepoint 项目 Web 部件 网页中 我在 ascx cs 文件中使用 C 动态创建页面元素 控件 在 ascx 文件中 我使用 jQuery 来响应页面上发生的事件 选择 复选框状态的更改等 我需要有条件地使页面上的控
  • 如何在 Rails 和 Postgresql 中查找带有多个标签的帖子

    我有模型Post Tag and PostTag 一个帖子通过帖子标签有很多标签 我想查找专门标记有多个标签的帖子 has many post tags has many tags through post tags 例如 给定这个数据集
  • HTC 设备上的 imeoptions

    我在 HTC 设备上看不到像 did 和 like 这样的 imeoptions 而相同的代码在 Motorola 上运行良好 这是代码
  • 如何使用 Youtube API v3 将 Youtube 视频静音?

    我在用着Youtube API V3用于在我的中播放视频安卓应用程序 但是 我正在将文本转语音与视频一起使用 所以我想mute视频 以便可以听到其他音频 我搜索了文档和互联网 但只找到了 javascript 的解决方案 任何帮助 将不胜感
  • Javascript 作用域变量理论

    我有两个行为不同的示例页面 我想知道原因 对我来说 根据我收集的关于 javascript 范围界定的信息 它们似乎彼此一致 1 html h1 Bad Scoping h1
  • 使用应用程序池标识会导致异常和事件日志

    我最近将我的应用程序从使用 ASP NET 模拟切换为在应用程序池中实际指定身份 这样做的原因是为了将来使用async更容易 因此线程作为我的服务帐户运行 自从进行更改以来 该网站遇到了一些问题 在我进行更改的那天 我现在看到这些事件日志显
  • 打开终端时导入 conda 错误回溯

    每次我打开终端时都会显示以下代码行 Traceback most recent call last File
  • 通过 JavaScript 禁用按键事件

    I need to disable shift keypress event in my site by using JavaScript or any other method Below is my code document read
  • iPhone:如何在选项卡栏应用程序中的多个视图控制器之间传递数据

    我有以下问题 我构建了一个带有 4 个选项卡的选项卡栏应用程序 我想将对象 变量从第一个选项卡控制器传递到第三个选项卡控制器 并使用相应的对象初始化该控制器 我已经做了一些研究 与干净模型方法相对应的最佳方法是在被调用的视图控制器上调用一些
  • 当我想双击时如何避免点击?

    我有一个 WPF 应用程序和一个按钮 在此按钮中 我想要实现代码的单击事件 但我希望当用鼠标双击时 执行其他代码 但不执行单击事件的代码 问题是点击事件的代码总是被执行 我不知道是否有办法避免双击时执行点击事件 我遵循 MVVM 模式 并使
  • 添加数据读取限制 firebase firestore

    我们有一个使用 Firestore 的 iOS 应用程序 该应用程序仅读取数据 不写入 我们没有用户帐户 数据库上的任何内容都必须受到保护 因此 我们遵循这些幼稚的安全规则 service cloud firestore match dat
  • 如何:Macports 选择 python

    当我输入时 port select list python 这是结果 Available versions for python none python25 active python25 apple python26 apple pyth
  • DeprecationWarning:timers.unenroll() 已弃用。请改用clearTimeout

    在关注此 YouTube 时video了解 Node js 我收到这个错误 nodemonindex js 节点 18129 DEP0096 DeprecationWarning timers unenroll 已弃用 请改用clearTi
  • 编译正常但运​​行时出现NoClassDefFoundError

    我正在尝试使用 JavaMail API 发送电子邮件 我已经通过自解压二进制文件将 jdk 1 5 安装在我的主目录中 我用的是乌宾图 9 10 我使用以下命令编译程序 jdk1 5 0 22 bin javac classpath jd
  • 创建一个触发器,当属性变为负数时删除行[oracle sql]?

    我想创建一个触发器 当其中一个属性变为负值时 该触发器将删除一行 到目前为止我已经有了这个 但它似乎不是有效的sql CREATE OR REPLACE TRIGGER ZERO COPIES TRIGGER after update of
  • 将四元数拆分为轴旋转

    我有一个代表物体方向的四元数 黄色框和球体 我想知道是否可以将该四元数拆分为其他四元数 从而为我们提供每个局部轴 X Y 和 Z 的旋转 到目前为止我一直在做的是获取欧拉表示并使用它 但这不是我的特定情况的正确解决方案 给定两个点 蓝色框