Matrix 結構
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示一個用於二維空間變換的 3 × 3 仿射變換矩陣。
public value class Matrix
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct Matrix
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public struct Matrix
Public Structure Matrix
<Matrix .../>
- or -
<object property="m11,m12,m21,m22,offsetX,offsetY"/>
- or -
<object property="m11 m12 m21 m22 offsetX offsetY"/>
-or-
<object property="Identity"/>
- 繼承
-
Matrix
- 屬性
範例
此範例 XAML 定義了一個矩陣,提供矩陣資料,用於對矩形形狀進行矩 陣轉換 。 此時,矩陣結合了一個偏移量(OffsetX 和 OffsetY )以及一個偏移量(M12. 請注意,這種效果其實也可以結合 TranslateTransform 和 SkewTransform 來產生。 是否使用單一矩陣或組合離散轉換,取決於編碼風格;結果完全相同。
<Rectangle Width="100" Height="100" Fill="Red">
<Rectangle.RenderTransform>
<MatrixTransform Matrix="1,0,0,1,200,0">
</MatrixTransform>
</Rectangle.RenderTransform>
</Rectangle>
備註
3×3矩陣用於二維x-y平面的變換。 仿射變換矩陣可以通過相乘來組成任意數量的線性變換,例如旋轉和扭曲(切變),接著是平移。 仿射變換矩陣的最後一欄為 (0, 0, 1),因此只需指定前兩欄的成員。 請注意,向量是以列向量表示,而非欄向量。
矩陣以列-主要順序儲存,結構如下:
| M11 | M12 | 0 |
| M21 | M22 | 0 |
| OffsetX | OffsetY | 1 |
最後一列的成員 OffsetX 和 OffsetY,代表平移值。
在方法與性質中,變換矩陣通常以僅有六個成員的向量形式指定,如下:(M11, M12, M21, M22, OffsetX, OffsetY)
雖然你可以直接使用矩陣結構來轉換個別點,或使用 MatrixTransform 來轉換物件,但 Windows 執行階段 也提供一組類別,可以轉換物件而無需直接處理矩陣:
矩陣的屬性可以被動畫化(例如一個或多個 DoubleAnimation 動畫或 DoubleAnimationUsingKeyFrames)。
Matrix 是 MatrixTransform.Matrix 屬性的屬性值。 相關類型可用於三維空間中的轉換矩陣,然後用於投影。 參見 Matrix3D 與 Matrix3DProjection。
語言投影與矩陣成員
如果你使用的是Microsoft .NET語言(C#),那麼 Matrix 有非資料成員可用,且其資料成員是以讀寫屬性(card-write property)形式公開,而非欄位。
如果你使用 Windows 執行階段 範本函式庫(WRL)使用 C++ 程式設計,則只有資料成員欄位會作為矩陣的成員存在,且無法使用成員表中列出的工具方法或屬性。 WRL 程式碼可存取 MatrixHelper 類別中存在的類似工具方法。
欄位
| 名稱 | Description |
|---|---|
| M11 |
此矩陣結構的第一列第一欄的值。 |
| M12 |
此矩陣結構的第一列第二欄的值。 |
| M21 |
此矩陣結構的第二列與第一欄的值。 |
| M22 |
此矩陣結構的第二列第二欄的值。 |
| OffsetX |
取得或設定此矩陣結構第三列第一欄的值。 |
| OffsetY |
取得或設定此矩陣結構第三列第二欄的值。 |