我目前正在學習DirectX(2010年6月的SDK),並且正在繪製位圖來屏幕。現在我希望能夠對這些圖像進行轉換,並且無法沿着x軸或y軸鏡像圖像。C++ Direct2D矩陣轉換鏡像
在繪製之前,我可以設置一個將應用於繪圖操作的轉換矩陣。儘管DirectX使用D2D1_MATRIX_3x2_F類型,但根據MSDN的說法,該矩陣只有一個2x2部分用於轉換。例如,矩陣{[1,0],[0,1],[0,0]}是使所有內容自然顯示的單位矩陣。根據我的理解,沿x軸鏡像我的圖像的矩陣變換應該如下所示:{[1,0],[0,-1],[0,0]},沿着那麼y軸將是{[-1,0],[0,1],[0,0]}。如果我使用這些矩陣進行轉換,則會出現黑屏。
對於我來說,問題在於,我有點卡在這一點上,沒有想法這個問題可能是由什麼原因造成的,或者說是否是由數學背後的邏輯錯誤或實現本身造成的。不幸的是,除了在Direct2D RenderTarget頭文件中的「鏡像必須用矩陣轉換完成」之外,我還找不到任何材料。
我目前使用的這個測試的源代碼是:
D2D1_MATRIX_3X2_F m;
m._11 = 1; m._12 = 0;
m._21 = 0; m._22 = -1;
m._31 = 0; m._32 = 0;
m_pDX2DRenderTarget->SetTransform(m);