2014-03-06 99 views
1

試想兩個座標奠定在彼此的頂部系統,兩者之間的旋轉和縮放的區別:兩者之間如何轉換點座標系具有不同的旋轉

Example

的問題是轉換從非旋轉系統指向另一個系統。我們所做的是四個角點形成一個矩形,每個點的座標都是已知的。我們也知道旋轉差異,我認爲我至少應該知道比例差異。如何將一個點從非旋轉系統轉換爲旋轉系統?我使用Unity3D。

爲清楚起見加分,數學:)

PS:我在寫這真的晚了,打算以後編輯更加清晰。

回答

4

一些線性代數的伎倆:

Express中的每個操作作爲基質和matrix multiply那些將它們組合成一個單一的結果矩陣(爲了提高效率)。

如果涉及翻譯,您需要在矩陣中添加一個維度,請參閱homogenous coordinates

原因是映射是仿射的映射,而不是線性映射。您可以忽略最終結果中的額外維度。這只是將仿射映射嵌入線性映射的一種很好的方式,所以代數更容易。這裏

M = M_trans * M_rot * M_scale 
x' = M x 

的順序是從右到左:矢量x被第一縮放,然後旋轉,然後再翻譯成向量x」。 (使用列向量)。

提示的矩陣:Rotation MatrixScaling Matrix

對於給定的3D片當導出2D公式:要麼保持z = 0的或刪除從每個矩陣的第三行和第三列中。

相關問題