【发布时间】:2022-08-21 12:45:58
【问题描述】:
我正在为 Monogame 中的一些基本矢量旋转而苦苦挣扎。
我有一个 3D 前向单位向量(0, 0, -1)只是想旋转它们180度周围Y轴(上).这是代码:
[Fact]
public void Vector_Rotation()
{
Vector3 forward = Vector3.Forward;
float angle = (float)Math.PI;
Vector3 dirQuat = Vector3.Transform(forward, Quaternion.CreateFromAxisAngle(Vector3.Up, angle));
Vector3 dirMatrix = Vector3.Transform(forward, Matrix.CreateRotationY(angle));
}
预期结果
dirQuat = (0, 0, 1);
dirMatrix = (0, 0, 1);
实际结果
dirQuat = (8.742278E-08, 0, 1)
dirMatrix = (8.742278E-08, 0, 1)
我希望有一个与正向相反的单位向量 (0, 0, 1)。我是 Monogame 框架的新手,我在这里错过了一些基本的东西吗? 提前感谢您的任何建议
-
8.742278E-08 是 0.000000087,基本上是 0。我认为这只是浮点数学,导致它几乎是 0,但不完全是。
标签: vector rotation xna game-development monogame