用GLM确定四元数前面的位置
Determine position in front of quaternion with GLM?
有没有一种方法可以计算四元数(XYZW(旋转前方的XYZ位置,最好使用GLM?
我知道Quat旋转和要计算前方位置的对象的位置。
我知道如何计算旋转矩阵前面的位置,这里有一个前向量、上向量和右向量,但在这种情况下,我只有XYZW值(其中W总是0,我从来没有看到它变成1.?(
简而言之:我有数据:Quat (X Y Z W)
和Position(X Y Z)
,我想计算PositionInFront(Position, Quat, Distance, &X, &Y, &Z)
如何实现这一目标?
我试着转换为3x3矩阵,并执行向上、向右、向前(因为3x3矩阵转换就是这些值,对吧?(计算,但它们没有返回正确的位置。
或者可以确定对象的Z角度吗?(仅围绕世界Z/高度轴旋转(
我忘记使用的车辆似乎还有两个四元数结构。这3个是前、右、上计算公式所需的完整集合:
float offX = 10.0f;
float offY = 0.0f;
float offZ = 0.0f;
float x = offX * info.Rotation.Front.x + offY * info.Rotation.Right.x + offZ * info.Rotation.Up.x + info.Pos.x;
float y = offX * info.Rotation.Front.y + offY * info.Rotation.Right.y + offZ * info.Rotation.Up.y + info.Pos.y;
float z = offX * info.Rotation.Front.z + offY * info.Rotation.Right.z + offZ * info.Rotation.Up.z + info.Pos.z;
float Angle = (atan2(x-info.Pos.x, y-info.Pos.y) * 180.0f / PI);
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- 如何定义更改car类中car位置的方法
- 使用迭代器时如何访问对象在向量中的位置?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 求最大元素位置的分治算法
- 移除前面有空格的前2个字符串
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 如何将元素添加到向量的字符串位置
- 如何选择在 csv 文件中输出的位置
- 如何在不删除任何字符的情况下将字符从字符串中的某个位置移动到其最前面
- 用GLM确定四元数前面的位置