Matrix 結構

定義

代表用於二維空間中轉換的 3 × 3 個相依轉換矩陣。

public value class Matrix
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct Matrix
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 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
屬性

Windows 需求

裝置系列
Windows 10 (已於 10.0.10240.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)

範例

此範例 XAML 會定義 Matrix,以提供套用至矩形圖形 之 MatrixTransform 的資料。 在此情況下,矩陣會結合位移 (OffsetX 和 OffsetY) ,以及扭曲 (M12) 。 請注意,這個相同的效果可能是藉由結合 TranslateTransformSkewTransform來產生。 是否要使用單一矩陣或離散轉換的組合,都是程式碼撰寫樣式的問題;結果完全相同。

<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

最後一列 OffsetXOffsetY中的成員代表翻譯值。

在方法和屬性中,轉換矩陣通常會指定為只有六個成員的向量,如下所示: (M11、M12M21、M22OffsetXOffsetY)

雖然您可以使用 Matrix 結構直接轉譯個別點,或搭配MatrixTransform轉換物件,但Windows 執行階段也提供一組類別,可轉換物件而不直接使用矩陣:

矩陣的屬性可以動畫 (為一或多個 DoubleAnimation 動畫或 DoubleAnimationUsingKeyFrames) 。

Matrix 是 MatrixTransform.Matrix 屬性的屬性值。 相關類型可用於三維空間中的轉換矩陣,然後用於投影。 請參閱 Matrix3DMatrix3DProjection

矩陣的語言投影和成員

如果您使用 Microsoft .NET 語言 (C# 或 Microsoft Visual Basic) ,或在 Visual C++ 元件延伸模組中 (C++/CX) 則 Matrix 具有非資料成員可用,而且其資料成員會公開為讀寫屬性,而非欄位。

如果您使用 Windows 執行階段 範本庫 (WRL) 使用 C++ 進行程式設計,則只有資料成員欄位會以 Matrix 的成員的形式存在,而且您無法使用成員資料表中列出的公用程式方法或屬性。 WRL 程式碼可以存取 MatrixHelper 類別上存在的類似公用程式方法。

欄位

M11

這個矩陣結構的第一列和第一欄的值。

M12

這個 Matrix 結構的第一列和第二欄的值。

M21

這個 Matrix 結構的第二列和第一欄的值。

M22

這個 Matrix 結構的第二列和第二欄的值。

OffsetX

取得或設定這個 Matrix 結構的第三列和第一個資料行的值。

OffsetY

取得或設定這個 Matrix 結構之第三列和第二欄的值。

適用於