DirectX::XMVECTOR 函数 XMVectorSetByIndex() 未设置浮点数 (C++)
DirectX::XMVECTOR function XMVectorSetByIndex() not setting float (C++)
我在执行 C++ 中看似简单的任务时遇到了一些问题,我试图使用命令 XMVectorSetByIndex() 更改向量 (DirectX::XMVECTOR) 内的值。
在下面的代码中,命令 XMVectorGetByIndex() 工作正常,new_y 设置为 1.7(在添加 0.2 之后)。但是,XMVectorSetByIndex() 不会像我期望的那样导致测试变为 {0.0f, 1.7f, 2.0f, 0.0f}(而是保持不变)。
XMVECTOR test = { 0.0f, 1.5f, 2.0f, 0.0f };
float new_y = XMVectorGetByIndex(test, 1) + 0.2;
XMVectorSetByIndex(test, new_y, 1);
我已经尝试了一些不同的方法,但没有成功使该功能正常工作。我只是看不出问题是什么(特别是考虑到 XMVectorGetByIndex() 没有问题。
任何帮助将不胜感激:)
https://msdn.microsoft.com/en-us/library/hh404810(v=vs.85).aspx (XMVectorSetByIndex)
https://msdn.microsoft.com/en-us/library/Hh404786(v=VS.85).aspx (XMVectorGetByIndex)
XMVectorSetByIndex
函数 returns 修改内容的新向量,它不会就地修改输入向量。所以你应该覆盖 test
:
test = XMVectorSetByIndex(test, new_y, 1);
XMVectorSetByIndex 不会修改您传入的矢量,而是 returns 新结果。
XMVECTOR test = { 0.0f, 1.5f, 2.0f, 0.0f };
float new_y = XMVectorGetByIndex(test, 1) + 0.2;
test = XMVectorSetByIndex(test, new_y, 1);
我在执行 C++ 中看似简单的任务时遇到了一些问题,我试图使用命令 XMVectorSetByIndex() 更改向量 (DirectX::XMVECTOR) 内的值。
在下面的代码中,命令 XMVectorGetByIndex() 工作正常,new_y 设置为 1.7(在添加 0.2 之后)。但是,XMVectorSetByIndex() 不会像我期望的那样导致测试变为 {0.0f, 1.7f, 2.0f, 0.0f}(而是保持不变)。
XMVECTOR test = { 0.0f, 1.5f, 2.0f, 0.0f };
float new_y = XMVectorGetByIndex(test, 1) + 0.2;
XMVectorSetByIndex(test, new_y, 1);
我已经尝试了一些不同的方法,但没有成功使该功能正常工作。我只是看不出问题是什么(特别是考虑到 XMVectorGetByIndex() 没有问题。
任何帮助将不胜感激:)
https://msdn.microsoft.com/en-us/library/hh404810(v=vs.85).aspx (XMVectorSetByIndex) https://msdn.microsoft.com/en-us/library/Hh404786(v=VS.85).aspx (XMVectorGetByIndex)
XMVectorSetByIndex
函数 returns 修改内容的新向量,它不会就地修改输入向量。所以你应该覆盖 test
:
test = XMVectorSetByIndex(test, new_y, 1);
XMVectorSetByIndex 不会修改您传入的矢量,而是 returns 新结果。
XMVECTOR test = { 0.0f, 1.5f, 2.0f, 0.0f };
float new_y = XMVectorGetByIndex(test, 1) + 0.2;
test = XMVectorSetByIndex(test, new_y, 1);