【发布时间】:2015-04-10 21:38:06
【问题描述】:
这是一个简单的示例程序
Vector3 eyePos = new Vector3(0, 1, 0);
Vector3 target = Vector3.Zero;
Quaternion lookAt= Quaternion.LookAtLH(eyePos, target, Vector3.Up);
Vector3 newForward = Vector3.Transform(Vector3.ForwardLH, lookAt);
我希望这段代码能够获取我的前向矢量,并将其旋转为正面朝下。
我的四元数输出为 -0.5 + 0.5i + 0j + 0k,这似乎是正确的。 然而,我的 newForward 是 (0.0X, 0.5Y, 0.5Z),而不是预期的 (0.0X, -1.0Y, 0.0Z)
我是不是做错了什么,误解了 Transform 的功能或空间?据我所知,SharpDX 的实现取自 SlimDX。功能刚刚坏了吗?我无法想象这个功能被破坏了,我只是希望我太累了,无法意识到自己的错误。感谢阅读。
【问题讨论】:
标签: rotation quaternions sharpdx slimdx