N维向量旋转

问题描述 投票:0回答:1

我试图概括一个类来处理任何维度和类型(float/int/double)的向量。除了旋转之外,几乎所有常见操作都可以直接推广到更高维度。 将向量扩展到 3 维空间是否也需要我扩展四元数?

无论如何,我的代码之前看起来像这样:

public Vector3f rotate(@NotNull Quaternion rotation){
    Quaternion conjugate = rotation.conjugated();
    Quaternion w = rotation.mul(this).mul(conjugate);
    return new Vector<N>(w.getX(), w.getY(), w.getZ());
}

有人可以帮助我吗,我已经从事这个工作有一段时间了。谢谢!

vector linear-algebra quaternions
1个回答
0
投票

Aguilera-Perez 算法(http://wscg.zcu.cz/wscg2004/Papers_2004_Short/N29.pdf),评论中的回答是我正在寻找的解决方案。

它不像众所周知的 2D 和 3D 旋转公式那样优化得很好,所以我当时最终采用了拆分实现。

在我目前能找到的所有资源中,这个算法似乎仍然是最清晰、最容易实现的。

© www.soinside.com 2019 - 2024. All rights reserved.