Matrix 構造体
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
2 次元空間での変換に使用される 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 の例では、四角形の図形に適用される MatrixTransform のデータを提供するマトリックスを定義します。 この場合、マトリックスはオフセット (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 行列は、2 次元の x-y 平面での変換に使用されます。 アフィン変換行列を乗算して、回転や傾斜 (せん断) などの任意の数の線形変換を形成し、その後に平行移動を行うことができます。 アフィン変換行列の最終列は (0, 0, 1) であるため、最初の 2 つの列のメンバーのみを指定する必要があります。 ベクターは、列ベクトルではなく行ベクトルとして表されることに注意してください。
マトリックスは行優先順を使用して格納され、次の構造を持ちます。
| M11 | M12 | 0 |
| M21 | M22 | 0 |
| OffsetX | OffsetY | 1 |
最後の行 OffsetX と OffsetY のメンバーは、平行移動値を表します。
メソッドとプロパティでは、変換行列は通常、次のように 6 つのメンバーのみを持つベクターとして指定されます (M11、 M12、 M21、 M22、 OffsetX、 OffsetY)
Matrix 構造体を使用して個々のポイントを直接変換したり、MatrixTransform を使用してオブジェクトを変換したりできますが、Windows ランタイムには、マトリックスを直接操作せずにオブジェクトを変換できるクラスのセットも用意されています。
マトリックスのプロパティは、(1 つまたは複数の DoubleAnimation アニメーションまたは DoubleAnimationUsingKeyFrames として) アニメーション化できます。
Matrix は MatrixTransform.Matrix プロパティのプロパティ値です。 関連する型は、3 次元空間の変換行列に使用し、プロジェクションに使用できます。 Matrix3D と Matrix3DProjection を参照してください。
Matrix の言語プロジェクションとメンバー
Microsoft .NET言語 (C#) を使用している場合、Matrix には非データ メンバーが使用でき、そのデータ メンバーはフィールドではなく読み取り/書き込みプロパティとして公開されます。
Windows ランタイム テンプレート ライブラリ (WRL) を使用して C++ を使用してプログラミングする場合、データ メンバー フィールドのみが Matrix のメンバーとして存在し、メンバー テーブルにリストされているユーティリティ メソッドまたはプロパティを使用することはできません。 WRL コードは、 MatrixHelper クラスに存在する同様のユーティリティ メソッドにアクセスできます。
フィールド
| 名前 | 説明 |
|---|---|
| M11 |
この Matrix 構造体の最初の行と最初の列の値。 |
| M12 |
この Matrix 構造体の最初の行と 2 番目の列の値。 |
| M21 |
この Matrix 構造体の 2 番目の行と最初の列の値。 |
| M22 |
この Matrix 構造体の 2 番目の行と 2 番目の列の値。 |
| OffsetX |
この Matrix 構造体の 3 番目の行と最初の列の値を取得または設定します。 |
| OffsetY |
この Matrix 構造体の 3 番目の行と 2 番目の列の値を取得または設定します。 |