語言

Matrix 結構

定義

表示一個用於二維空間變換的 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),因此只需指定前兩欄的成員。 請注意,向量是以列向量表示,而非欄向量。

矩陣以列-主要順序儲存,結構如下:

M11M120
M21M220
OffsetXOffsetY1

最後一列的成員 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

取得或設定此矩陣結構第三列第二欄的值。

適用於