次の方法で共有


Matrix 構造体

定義

2-D 空間での変換に使用される 3 x 3 アフィン変換行列を表します。

public value class Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
[System.Serializable]
public struct Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
public struct Matrix : IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
[<System.Serializable>]
type Matrix = struct
    interface IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
type Matrix = struct
    interface IFormattable
Public Structure Matrix
Implements IFormattable
継承
Matrix
属性
実装

注釈

3x3 行列は、2-D x-y 平面の変換に使用されます。 アフィン変換マトリックスでは、平行移動前の任意の数の線形変換 (回転やスキュー (せん断) など) を 1 つのマトリックスの乗算にまとめることができます。 アフィン変換行列の最終列は (0, 0, 1) であるため、最初の 2 つの列のメンバーのみを指定する必要があります。 ベクトルは、列ベクトルではなく行ベクトルとして表されることに注意してください。

WPF Matrix は行メジャー順を使用して格納され、次の構造を持ちます。

M11 M12 0
M21 M22 0
OffsetX OffsetY 1

最後の行の メンバー と OffsetYは、OffsetX翻訳値を表します。

メソッドとプロパティでは、変換行列は通常、次のように 6 つのメンバーのみを持つベクトルとして指定されます。

(M11, M12, M21, M22, OffsetX, OffsetY)

構造体をMatrix直接使用して個々のポイントを変換することも、 を使用MatrixTransformしてオブジェクトを変換することもできますが、WPF には、マトリックス SkewTransformRotateTransformScaleTransform、 を直接操作せずにオブジェクトを変換できるクラスのセットも用意されています。TranslateTransform

XAML 属性の使用方法

<object property="m11, m12, m21, m22, offsetX, offsetY"/>  
- or -  
<object property="Identity"/>  

XAML 値

m11
System.Double

この Matrixの最初の行と最初の列の値。 詳細については、M11 プロパティを参照してください。

m12
System.Double

最初の行と 2 番目の列の値。 詳細については、M12 プロパティを参照してください。

m21
System.Double

2 番目の行と最初の列の値。 詳細については、M21 プロパティを参照してください。

m22
System.Double

2 番目の行と 2 番目の列の値。 詳細については、M22 プロパティを参照してください。

Offsetx
System.Double

3 行目と 1 列目の値。 詳細については、OffsetX プロパティを参照してください。

Offsety
System.Double

3 行目と 2 番目の列の値。 詳細については、OffsetY プロパティを参照してください。

コンストラクター

Matrix(Double, Double, Double, Double, Double, Double)

Matrix 構造体の新しいインスタンスを初期化します。

プロパティ

Determinant

この Matrix 構造体の行列式を取得します。

HasInverse

この Matrix 構造体が反転可能かどうかを示す値を取得します。

Identity

恒等 Matrix を取得します。

IsIdentity

この Matrix 構造体が恒等行列かどうかを示す値を取得します。

M11

この Matrix 構造体の第 1 行、第 1 列の値を取得または設定します。

M12

この Matrix 構造体の第 1 行、第 2 列の値を取得または設定します。

M21

この Matrix 構造体の第 2 行、第 1 列の値を取得または設定します。

M22

この Matrix 構造体の第 2 行、第 2 列の値を取得または設定します。

OffsetX

この Matrix 構造体の第 3 行、第 1 列の値を取得または設定します。

OffsetY

この Matrix 構造体の第 3 行、第 2 列の値を取得または設定します。

メソッド

Append(Matrix)

指定した Matrix 構造体をこの Matrix 構造体に追加します。

Equals(Matrix)

指定した Matrix 構造体がこのインスタンスと同一であるかどうかを判断します。

Equals(Matrix, Matrix)

指定した 2 つの Matrix 構造体が同一かどうかを判断します。

Equals(Object)

指定した Object が、この Matrix と同じ Matrix 構造体であるかどうかを判断します。

GetHashCode()

この Matrix 構造体のハッシュ コードを返します。

Invert()

この Matrix 構造体を反転します。

Multiply(Matrix, Matrix)

Matrix 構造体に別の Matrix 構造体を乗算します。

Parse(String)

行列の String 表現を、等価の Matrix 構造体に変換します。

Prepend(Matrix)

指定した Matrix 構造体をこの Matrix 構造体の前に付加します。

Rotate(Double)

この Matrix 構造体の原点を中心とする指定した角度の回転を適用します。

RotateAt(Double, Double, Double)

指定した点を中心にこの行列を回転します。

RotateAtPrepend(Double, Double, Double)

指定した点における指定した角度の回転を、この Matrix 構造体の前に付加します。

RotatePrepend(Double)

指定した角度の回転を、この Matrix 構造体の前に付加します。

Scale(Double, Double)

指定したスケールのベクターを Matrix 構造体に追加します。

ScaleAt(Double, Double, Double, Double)

この Matrix を、指定した点を中心として指定した量だけスケーリングします。

ScaleAtPrepend(Double, Double, Double, Double)

この Matrix の指定した点を中心とする指定したスケールを前に付加します。

ScalePrepend(Double, Double)

指定したスケールのベクターをこの Matrix 構造体の前に付加します。

SetIdentity()

この Matrix 構造体を恒等行列に変更します。

Skew(Double, Double)

x 次元と y 次元の指定した角度の傾斜を、この Matrix 構造体に追加します。

SkewPrepend(Double, Double)

x 次元と y 次元の指定した角度の傾斜を、この Matrix 構造体の前に付加します。

ToString()

この String 構造体の Matrix 表現を作成します。

ToString(IFormatProvider)

カルチャ固有の書式設定情報を使用して、この String 構造体の Matrix 表現を作成します。

Transform(Point)

指定した点を Matrix で変換し、その結果を返します。

Transform(Point[])

指定した点をこの Matrix で変換します。

Transform(Vector)

指定したベクターをこの Matrix で変換します。

Transform(Vector[])

指定したベクターをこの Matrix で変換します。

Translate(Double, Double)

指定したオフセットの変換をこの Matrix 構造体に追加します。

TranslatePrepend(Double, Double)

指定したオフセットの変換をこの Matrix 構造体の前に付加します。

演算子

Equality(Matrix, Matrix)

指定した 2 つの Matrix 構造体が同一かどうかを判断します。

Inequality(Matrix, Matrix)

指定した 2 つの Matrix 構造体が異なるかどうかを判断します。

Multiply(Matrix, Matrix)

Matrix 構造体に別の Matrix 構造体を乗算します。

明示的なインターフェイスの実装

IFormattable.ToString(String, IFormatProvider)

指定された書式を使用して現在のインスタンスの値を書式設定します。

適用対象

こちらもご覧ください