Matrix4X4
高精度部品で4x4マトリックスを出力します。
実装: IEquatable<Matrix4X4>
コンストラクター
public Matrix4X4(Vector4 row0, Vector4 row1, Vector4 row2, Vector4 row3)
matrix4X4 = Matrix4X4(row0, row1, row2, row3)
新規インスタンスを構成します。
- row0
- 行列の先頭行
- row1
- 行列の秒数
- row2
- 行列の3番目の行
- row3
- 行列の一番下行
public Matrix4X4(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33)
matrix4X4 = Matrix4X4(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33)
新規インスタンスを構成します。
- m00
- 最初の行の最初の項目。
- m01
- 最初の行の2番目の項目。
- m02
- 最初の行の3番目の項目。
- m03
- 先頭行の4番目の項目。
- m10
- 第二行目の最初の項目。
- m11
- 2行目目目目次
- m12
- 第二行目次3番目の項目。
- m13
- 第2列の4番目の項目。
- m20
- 第三行目の最初の項目。
- m21
- 3行目目目次
- m22
- 3行目目目目次
- m23
- 第三行目の最初の項目。
- m30
- 4列目4列目
- m31
- 4列目次
- m32
- 4列目次3番目の項目。
- m33
- 4列目4列目
プロパティ
public double M11 { get; set; }
value = matrix4X4.M11
matrix4X4.M11 = value
このインスタンスの行1、列1で値を取得またはセットします。
public double M12 { get; set; }
value = matrix4X4.M12
matrix4X4.M12 = value
このインスタンスの行1、列2で値を取得またはセットします。
public double M13 { get; set; }
value = matrix4X4.M13
matrix4X4.M13 = value
このインスタンスの行1、列3で値を取得またはセットします。
public double M14 { get; set; }
value = matrix4X4.M14
matrix4X4.M14 = value
このインスタンスの行1、列4で値を取得またはセットします。
public double M21 { get; set; }
value = matrix4X4.M21
matrix4X4.M21 = value
このインスタンスの行2、列1で値を取得またはセットします。
public double M22 { get; set; }
value = matrix4X4.M22
matrix4X4.M22 = value
このインスタンスの行2、列2で値を取得またはセットします。
public double M23 { get; set; }
value = matrix4X4.M23
matrix4X4.M23 = value
このインスタンスの行2、列3で値を取得またはセットします。
public double M24 { get; set; }
value = matrix4X4.M24
matrix4X4.M24 = value
このインスタンスの行2、列4で値を取得またはセットします。
public double M31 { get; set; }
value = matrix4X4.M31
matrix4X4.M31 = value
このインスタンスの行3、列1で値を取得またはセットします。
public double M32 { get; set; }
value = matrix4X4.M32
matrix4X4.M32 = value
このインスタンスの行3、列2で値を取得またはセットします。
public double M33 { get; set; }
value = matrix4X4.M33
matrix4X4.M33 = value
このインスタンスの行3、列3で値を取得またはセットします。
public double M34 { get; set; }
value = matrix4X4.M34
matrix4X4.M34 = value
このインスタンスの行3、列4で値を取得またはセットします。
public double M41 { get; set; }
value = matrix4X4.M41
matrix4X4.M41 = value
このインスタンスの行4、列1で値を取得またはセットします。
public double M42 { get; set; }
value = matrix4X4.M42
matrix4X4.M42 = value
このインスタンスの行4、列2で値を取得またはセットします。
public double M43 { get; set; }
value = matrix4X4.M43
matrix4X4.M43 = value
このインスタンスの行4、列3で値を取得またはセットします。
public double M44 { get; set; }
value = matrix4X4.M44
matrix4X4.M44 = value
このインスタンスの行4、列4で値を取得またはセットします。
メソッド
public static void CreateFromAxisAngle(Vector3 axis, double angle, Matrix4X4 result)
Matrix4X4.CreateFromAxisAngle(axis, angle, result)
指定した軸/角度回転から回転行列をビルドします。
- axis
- 回転する軸線。
- angle
- 角度の放射状に反時計回りを回転させる(与えられた軸の方向を見ます)。
- result
- 行列インスタンス。
public static Matrix4X4 CreateFromAxisAngle(Vector3 axis, double angle)
result = Matrix4X4.CreateFromAxisAngle(axis, angle)
指定した軸/角度回転から回転行列をビルドします。
- axis
- 回転する軸線。
- angle
- 角度の放射状に反時計回りを回転させる(与えられた軸の方向を見ます)。
戻り値: 行列インスタンス。
public static void CreateOrthographic(double width, double height, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreateOrthographic(width, height, zNear, zFar, result)
整形プロジェクション行列を作成します。
- width
- 投影量の幅。
- height
- 投影量の高さ。
- zNear
- 投影量の近接端。
- zFar
- 投影量が遠く端。
- result
- 結果の Matrix4d インスタンス。
public static Matrix4X4 CreateOrthographic(double width, double height, double zNear, double zFar)
result = Matrix4X4.CreateOrthographic(width, height, zNear, zFar)
整形プロジェクション行列を作成します。
- width
- 投影量の幅。
- height
- 投影量の高さ。
- zNear
- 投影量の近接端。
- zFar
- 投影量が遠く端。
public static Matrix4X4 CreateOrthographicOffCenter(double left, double right, double bottom, double top, double zNear, double zFar)
result = Matrix4X4.CreateOrthographicOffCenter(left, right, bottom, top, zNear, zFar)
整形プロジェクション行列を作成します。
- left
- 投影量の左端。
- right
- 投影量の正しいエッジ。
- bottom
- 投影量の底端。
- top
- 投影量のトップエッジ。
- zNear
- 投影量の近接端。
- zFar
- 投影量が遠く端。
戻り値: 結果の Matrix4d インスタンス。
public static void CreateOrthographicOffCenter(double left, double right, double bottom, double top, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreateOrthographicOffCenter(left, right, bottom, top, zNear, zFar, result)
整形プロジェクション行列を作成します。
- left
- 投影量の左端。
- right
- 投影量の正しいエッジ。
- bottom
- 投影量の底端。
- top
- 投影量のトップエッジ。
- zNear
- 投影量の近接端。
- zFar
- 投影量が遠く端。
- result
- 結果の Matrix4d インスタンス。
public static void CreatePerspectiveFieldOfView(double fovYRadians, double aspectWidthOverHeight, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreatePerspectiveFieldOfView(fovYRadians, aspectWidthOverHeight, zNear, zFar, result)
視点のプロジェクション・マトリックスを作成します。
- fovYRadians
- y方向の視野の角度(ラジアン)
- aspectWidthOverHeight
- 眺めのアスペクト比(幅/高さ)
- zNear
- 近辺のクリップ平面への距離
- zFar
- 遠いクリップ平面への距離
- result
- カメラ空間をラスター空間に変換する投影行列
public static Matrix4X4 CreatePerspectiveFieldOfView(double fovYRadians, double aspectWidthOverHeight, double zNear, double zFar)
result = Matrix4X4.CreatePerspectiveFieldOfView(fovYRadians, aspectWidthOverHeight, zNear, zFar)
視点のプロジェクション・マトリックスを作成します。
- fovYRadians
- y方向の視野の角度(ラジアン)
- aspectWidthOverHeight
- 眺めのアスペクト比(幅/高さ)
- zNear
- 近辺のクリップ平面への距離
- zFar
- 遠いクリップ平面への距離
戻り値: カメラ空間をラスター空間に変換する投影行列
public static void CreatePerspectiveOffCenter(double left, double right, double bottom, double top, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreatePerspectiveOffCenter(left, right, bottom, top, zNear, zFar, result)
視点のプロジェクション・マトリックスを作成します。
- left
- 眺めの不信の左端
- right
- 眺めの素晴らしさの右端
- bottom
- 眺めの底端はフラスムを欠きます
- top
- 眺めの素晴らしの上の端
- zNear
- 近辺のクリップ平面への距離
- zFar
- 遠いクリップ平面への距離
- result
- カメラ空間をラスター空間に変換する投影行列
public static Matrix4X4 CreatePerspectiveOffCenter(double left, double right, double bottom, double top, double zNear, double zFar)
result = Matrix4X4.CreatePerspectiveOffCenter(left, right, bottom, top, zNear, zFar)
視点のプロジェクション・マトリックスを作成します。
- left
- 眺めの不信の左端
- right
- 眺めの素晴らしさの右端
- bottom
- 眺めの底端はフラスムを欠きます
- top
- 眺めの素晴らしの上の端
- zNear
- 近辺のクリップ平面への距離
- zFar
- 遠いクリップ平面への距離
戻り値: カメラ空間をラスター空間に変換する投影行列
public static Matrix4X4 CreateRotation(Vector3 axis, double angle)
result = Matrix4X4.CreateRotation(axis, angle)
回転行列をビルドして、与えられた軸について回転させます
- axis
- 軸線が回転する
- angle
- 角度の放射状に反時計回りを回す(与えられた軸の方向を見ます)
戻り値: 回転行列
public static Matrix4X4 CreateRotation(Quaternion q)
result = Matrix4X4.CreateRotation(q)
四方から回転行列をビルドする
- q
- 検疫
戻り値: 回転行列
public static void CreateRotationX(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationX(angle, result)
x軸の回転を回転させるための回転行列をビルドします。
- angle
- 放射状の角度の反時計回り。
- result
- 結果の Matrix4 インスタンス。
public static Matrix4X4 CreateRotationX(double angle)
result = Matrix4X4.CreateRotationX(angle)
x軸の回転を回転させるための回転行列をビルドします。
- angle
- 放射状の角度の反時計回り。
戻り値: 結果の Matrix4 インスタンス。
public static Matrix4X4 CreateRotationY(double angle)
result = Matrix4X4.CreateRotationY(angle)
y軸の周りの回転のための回転行列をビルドします。
- angle
- 放射状の角度の反時計回り。
戻り値: 結果の Matrix4 インスタンス。
public static void CreateRotationY(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationY(angle, result)
y軸の周りの回転のための回転行列をビルドします。
- angle
- 放射状の角度の反時計回り。
- result
- 結果の Matrix4 インスタンス。
public static Matrix4X4 CreateRotationZ(double angle)
result = Matrix4X4.CreateRotationZ(angle)
z軸の回転を回転させるための回転行列をビルドします。
- angle
- 放射状の角度の反時計回り。
戻り値: 結果の Matrix4 インスタンス。
public static void CreateRotationZ(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationZ(angle, result)
z軸の回転を回転させるための回転行列をビルドします。
- angle
- 放射状の角度の反時計回り。
- result
- 結果の Matrix4 インスタンス。
public static Matrix4X4 CreateScale(double x, double y, double z)
result = Matrix4X4.CreateScale(x, y, z)
スケールの行列を作成する
- x
- x軸のスケール係数
- y
- y軸のスケール係数
- z
- z軸のスケール係数
戻り値: スケールの行列
public static Matrix4X4 CreateScale(Vector3 scale)
result = Matrix4X4.CreateScale(scale)
スケールの行列を作成する
- scale
- x、y、z軸のスケール要因
戻り値: スケールの行列
public static Matrix4X4 CreateScale(double scale)
result = Matrix4X4.CreateScale(scale)
スケールの行列を作成する
- scale
- x、y および z 軸の単スケール要因
戻り値: スケールの行列
public static void CreateTranslation(double x, double y, double z, Matrix4X4 result)
Matrix4X4.CreateTranslation(x, y, z, result)
翻訳行列を作成します。
- x
- X翻訳。
- y
- 翻訳のY
- z
- Z 翻訳。
- result
- 結果の Matrix4d インスタンス。
public static Matrix4X4 CreateTranslation(double x, double y, double z)
result = Matrix4X4.CreateTranslation(x, y, z)
翻訳行列を作成します。
- x
- X翻訳。
- y
- 翻訳のY
- z
- Z 翻訳。
戻り値: 結果の Matrix4d インスタンス。
public static Matrix4X4 CreateTranslation(Vector3 vector)
result = Matrix4X4.CreateTranslation(vector)
翻訳行列を作成します。
- vector
- 翻訳ベクター。
戻り値: 結果の Matrix4d インスタンス。
public static void CreateTranslation(Vector3 vector, Matrix4X4 result)
Matrix4X4.CreateTranslation(vector, result)
翻訳行列を作成します。
- vector
- 翻訳ベクター。
- result
- 結果の Matrix4d インスタンス。
public override bool Equals(object obj)
result = matrix4X4.Equals(obj)
このインスタンスと指定されたオブジェクトが等しいかどうかを指示します。
- obj
- 比較するオブジェクト。
戻り値: インスタンスが等しい場合、true です。そうしないと false です。
public bool Equals(Matrix4X4 other)
result = matrix4X4.Equals(other)
現在の行列が別の行列に等しいかどうかを示します。
- other
- この行列と比較する行列。
戻り値: 行列が行列パラメータに等しい場合、true です。そうしないと false です。
public static Matrix4X4 Frustum(double left, double right, double bottom, double top, double near, double far)
result = Matrix4X4.Frustum(left, right, bottom, top, near, far)
投影行列をビルドする
- left
- 眺めの不信の左端
- right
- 眺めの素晴らしさの右端
- bottom
- 眺めの底端はフラスムを欠きます
- top
- 眺めの素晴らしの上の端
- near
- 近辺のクリップ平面への距離
- far
- 遠いクリップ平面への距離
戻り値: カメラ空間をラスター空間に変換する投影行列
public override int GetHashCode()
result = matrix4X4.GetHashCode()
このインスタンスのハッシュコードを返します。
戻り値: このインスタンスのハッシュコードをSystem.Int32に含める。
public static Matrix4X4 Invert(Matrix4X4 mat)
result = Matrix4X4.Invert(mat)
与えられた行列の逆を計算する
- mat
- 変換する行列
戻り値: 与えられた行列の逆は、それが1つを持っているか、またはそれが単数である場合の入力
public static Matrix4X4 LookAt(double eyeX, double eyeY, double eyeZ, double targetX, double targetY, double targetZ, double upX, double upY, double upZ)
result = Matrix4X4.LookAt(eyeX, eyeY, eyeZ, targetX, targetY, targetZ, upX, upY, upZ)
カメラ空間のマトリックスに世界空間を築きます
- eyeX
- 世界で目(カメラ)の位置
- eyeY
- 世界で目(カメラ)の位置
- eyeZ
- 世界で目(カメラ)の位置
- targetX
- 世界空間でのターゲット位置
- targetY
- 世界空間でのターゲット位置
- targetZ
- 世界空間でのターゲット位置
- upX
- ワールドスペースのベクトルをアップ(カメラの方向に平行ではない、ターゲット - 目)
- upY
- ワールドスペースのベクトルをアップ(カメラの方向に平行ではない、ターゲット - 目)
- upZ
- ワールドスペースのベクトルをアップ(カメラの方向に平行ではない、ターゲット - 目)
戻り値: 世界をカメラ空間に変えるMtrix4
public static Matrix4X4 LookAt(Vector3 eye, Vector3 target, Vector3 up)
result = Matrix4X4.LookAt(eye, target, up)
カメラ空間のマトリックスに世界空間を築きます
- eye
- 世界で目(カメラ)の位置
- target
- 世界空間でのターゲット位置
- up
- ワールドスペースのベクトルをアップ(カメラの方向に平行ではない、ターゲット - 目)
戻り値: 世界空間をカメラ空間に変えるマトリックス
public static Matrix4X4 Mult(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.Mult(left, right)
複数のインスタンスを 2 個に分割します。
- left
- 乗算の左のオペランド。
- right
- 乗算の正しい操作。
戻り値: 乗算の結果である新しいインスタンス
public static void Mult(Matrix4X4 left, Matrix4X4 right, Matrix4X4 result)
Matrix4X4.Mult(left, right, result)
複数のインスタンスを 2 個に分割します。
- left
- 乗算の左のオペランド。
- right
- 乗算の正しい操作。
- result
- 乗算の結果である新しいインスタンス
public static bool op_Equality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Equality(left, right)
平等のための2つのインスタンスを比較します。
- left
- 最初のインスタンス。
- right
- 2番目のインスタンス。
戻り値: 真、左が右に等しい場合、そうでなければfalse。
public static bool op_Inequality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Inequality(left, right)
不平等のための2つのインスタンスを比較します。
- left
- 最初のインスタンス。
- right
- 2番目のインスタンス。
戻り値: 本当は、左が右に等しいことではない場合; それ以外の場合は false。
public static Matrix4X4 op_Multiply(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Multiply(left, right)
マトリックスの乗算
- left
- 左手オペランド
- right
- 右手オペランド
戻り値: 乗算結果が保持される新しい Matrix44
public static Matrix4X4 Perspective(double fovy, double aspect, double near, double far)
result = Matrix4X4.Perspective(fovy, aspect, near, far)
投影行列をビルドする
- fovy
- y方向の視野の角度(ラジアン)
- aspect
- 眺めのアスペクト比(幅/高さ)
- near
- 近辺のクリップ平面への距離
- far
- 遠いクリップ平面への距離
戻り値: カメラ空間をラスター空間に変換する投影行列
public override string ToString()
result = matrix4X4.ToString()
現在の Matrix44 を表す System.Stringを返します。
public static Matrix4X4 Transpose(Matrix4X4 mat)
result = Matrix4X4.Transpose(mat)
与えられた行列の転置を計算する
- mat
- トランスポーズする行列
戻り値: 与えられた行列の転置
public static void Transpose(Matrix4X4 mat, Matrix4X4 result)
Matrix4X4.Transpose(mat, result)
与えられた行列の転置を計算する
- mat
- トランスポーズする行列
- result
- 計算の結果