C++ 是否有可能设置一个四元数的单个分量?

C++ 是否有可能设置一个四元数的单个分量?,c++,boost,quaternions,C++,Boost,Quaternions,我试图设置一个四元数的单个分量。 起初,我愚蠢地试图: quat.R_component_1() = 5.0; 当然,这是行不通的。 我仔细研究了四元数的增强,似乎不可能设置四元数的单个分量。您可以通过构造函数设置整个四元数,但不能设置单个组件 有人知道可以设置一个boost四元数的单个分量,而不使用构造函数设置整个四元数吗?为什么只设置一个分量?四元数是在这种状态下不存在的数学实体,它总是完整的。您的用例是什么?在irst,我不得不说,我真的不需要这样做。我想到了一个用例,当你有一组你想要用

我试图设置一个四元数的单个分量。 起初,我愚蠢地试图:

quat.R_component_1() = 5.0;
当然,这是行不通的。 我仔细研究了四元数的增强,似乎不可能设置四元数的单个分量。您可以通过构造函数设置整个四元数,但不能设置单个组件


有人知道可以设置一个boost四元数的单个分量,而不使用构造函数设置整个四元数吗?

为什么只设置一个分量?四元数是在这种状态下不存在的数学实体,它总是完整的。您的用例是什么?在irst,我不得不说,我真的不需要这样做。我想到了一个用例,当你有一组你想要用四元数旋转的点,但是在你想要操作点数据之前,也许可以通过将一个组件设置为一个特殊的值。所以,由于四元数旋转的原因,您需要将点数据表示为四元数,并且需要先设置单个组件。我知道还有其他可能做到这一点。我的使用案例是,我从文件中读取四元数旋转,然后我想依次设置单个组件。我不清楚您到底想做什么,但我从“在您想要操作点数据之前,可能通过将一个组件设置为特殊值”收集到了什么就是你想用一个四元数来表示它不是为之设计的。因此它无法工作。关于依次设置单个组件,您必须使用变量分别存储组件,然后使用这些组件构建四元数。我知道我可以通过将值存储在变量中来实现这一点。我就是这么做的。但是四元数用于旋转,对吗?想象一下,如果你正在用点数据做一些四元数旋转。首先,需要将点数据存储为四元数,以使用四元数乘法旋转它们。此时,您将通过设置组件(例如,设置为零)来操纵最终点数据。我不知道这个用例是否有真正的原因或算法,但我想知道它。然后你想用这些点数据做另一个四元数旋转。