簡體   English   中英

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函數返回具有修改內容的新向量,它不會就地修改輸入向量。 因此,您應該覆蓋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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM