1. 程式人生 > >QTransform Qt座標轉換

QTransform Qt座標轉換

QTransform類定義了一個特定的用於2D座標轉換。

它的轉換包括如何對座標系統位置遷移,縮放,扭曲,旋轉等,它在渲染圖片中被用的非常多。

QTransform不同於QMatrix 它是一個真是的3*3的矩陣,允許進行視覺化的轉換。

QTransform的toAffine()的方法允許QTransform轉換為QMatrix. 如果一個視覺化的轉換被用在特定的matrix, 這個轉換將會導致一些資料的丟失。

QTransform是Qt推薦使用的轉換類。

一個QTransform物件可以通過使用setMatrix(), scale(), rotate(), translate(), shear()等函式來構建。也就是說,它可以通過應用基礎的矩陣操作來構建。這個矩陣可以在構建的時候定義,同事可以通過reset()函式來重置為預設的矩陣。

QTransform類支援圖形原始資料的對映:一個給定的點,線,不規則圖形,區域或者是繪製的路徑通過matrix定義的資料通過map()函式都可以對映到座標系統。

一個矩形的座標可以通過mapRect()函式來進行轉換,也可以通過mapToPolygon()函式轉換為一個多邊形。

QTransform提供了一個isIdentity()函式,如果這個matrix是個可以識別的matrix就會返回true, 同時isInvertible()函式也返回true,如果這個矩陣是一個非奇異矩陣。這個函式會返回倒數矩陣,如果它是可倒的話,同時adjoint()會返回該矩陣的經典伴隨矩陣。determinant()函式將會返回這個矩陣的行列式。