[英]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
函數返回具有修改內容的新向量,它不會就地修改輸入向量。 因此,您應該覆蓋test
:
test = XMVectorSetByIndex(test, new_y, 1);
XMVectorSetByIndex不會修改您傳入的向量,而是返回新結果。
XMVECTOR test = { 0.0f, 1.5f, 2.0f, 0.0f };
float new_y = XMVectorGetByIndex(test, 1) + 0.2;
test = XMVectorSetByIndex(test, new_y, 1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.