gpt4 book ai didi

math - 两个 3d 矢量之间的欧拉角

转载 作者:行者123 更新时间:2023-12-04 11:09:13 25 4
gpt4 key购买 nike

你如何找到 2 个 3D 向量之间的 3 个欧拉角?
当我有一个 Vector 并且我想得到它的旋转时,通常可以使用这个链接:Calculate rotations to look at a 3D point?

但是在相互计算它们时我该怎么做呢?

最佳答案

正如其他人已经指出的那样,您的问题应该修改。让我们调用您的向量 ab .我假设 length(a)==length(b) > 0否则我无法回答这个问题。

计算 cross product您的矢量 v = a x b ; v给出 的旋转。通过计算 dot product ,可以得到的余弦角度你应该用 cos(angle)=dot(a,b)/(length(a)length(b)) 轮换,并与 acos您可以唯一地确定角度(@Archie 感谢您指出我之前的错误)。此时您有 轴角表示你的轮换。

剩下的工作是将此表示转换为您正在寻找的表示:欧拉角。 Conversion Axis-Angle to Euler是一种方法,正如您所发现的那样。当v = [ 0, 0, 0]时,您必须处理退化情况。 ,即当角度为 0 或 180 度时。

我个人不喜欢欧拉角,它们会破坏应用程序的稳定性,并且不适合插值,另见

  • Strange behavior with android orientation sensor
  • Interpolating between rotation matrices
  • 关于math - 两个 3d 矢量之间的欧拉角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101103/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com