假設我有圖像,我需要在任何方向旋轉90度,而我無法理解如何做到這一點。我需要使用矩陣,其中寬度 - 它是X,高度 - 是Y.我已經完成180度旋轉圖像,但無法計算出90度。旋轉矩陣/圖像的公式90度C++
下面是例子。假設我有一個3x4像素的圖像。寬度= 3,高度= 4,每個單元中的數據量 - N = Width * Height = 3 * 4 = 12
。讓我們把矩陣:
的公式可以輕鬆地去通過矩陣是y*Width + x
。而對於我們的180度旋轉的計算公式爲:
N - Width + x - y * Width
因此,我們有:
DataOut [y * Width + x] = DataIn [N - Width + x - y * Width]
使用這個公式,我們得到:
但我不能想出與旋轉90度的公式。你能幫我嗎?
你需要爲此,例如矩陣乘法90度旋轉矩陣爲[[0,-1],[1,0]],180度矩陣爲[[-1,0],[0,-1]]'。將每個點與矩陣相乘以得到點的旋轉位置。對於任何角度'a',旋轉矩陣爲[[cos(a), - sin(a)],[sin(a),cos(a)]]'。 – thebjorn