Matrix4X4
代表有双精度组件的4x4矩阵.
实现: IEquatable<Matrix4X4>
构造函数
public Matrix4X4(Vector4 row0, Vector4 row1, Vector4 row2, Vector4 row3)
matrix4X4 = Matrix4X4(row0, row1, row2, row3)
构造新实例。
- row0
- 矩阵的上行
- row1
- 矩阵的第二行
- row2
- 矩阵的第三行
- 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
- 初行第二品为相.
- m02
- 初一行第三品(出金刚经一卷.
- m03
- 初行第四品为相.
- m10
- 二行第一品说.
- m11
- 二行第二品相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相
- m12
- 二行第三品(出出同异想经一卷.
- m13
- 第二行第四品说.
- m20
- 第三行第一品.
- m21
- 第三行第二品说.
- m22
- 第三行第三品(出出自" the经").
- m23
- 第三行第一品.
- m30
- 第四行第四品(出金刚经一卷.
- m31
- 第四行第二品下正显.
- m32
- 第四行第三品(出出自后汉书.
- m33
- 第四行第四品(出金刚经一卷.
属性
方法
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
- 由此而来,Metro4d 的例子。
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
- 投影量的远缘.
返回值: 由此而来,Metro4d 的例子。
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
- 由此而来,Metro4d 的例子。
public static void CreatePerspectiveFieldOfView(double fovYRadians, double aspectWidthOverHeight, double zNear, double zFar, Matrix4X4 result)
Matrix4X4.CreatePerspectiveFieldOfView(fovYRadians, aspectWidthOverHeight, zNear, zFar, result)
创建视角预测矩阵。
- fovYRadians
- 以弧度为方向的视域角
- aspectWidthOverHeight
- 视图的相向比( 宽度 / 高)
- zNear
- 距离相近的剪接平面
- zFar
- 距离相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相相相距相距相相相相距相距相距相相相相相相相距相相相
- result
- 将相机空间转换为光栅空间的投影矩阵
public static Matrix4X4 CreatePerspectiveFieldOfView(double fovYRadians, double aspectWidthOverHeight, double zNear, double zFar)
result = Matrix4X4.CreatePerspectiveFieldOfView(fovYRadians, aspectWidthOverHeight, zNear, zFar)
创建视角预测矩阵。
- fovYRadians
- 以弧度为方向的视域角
- 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
- 由此而来的主母体4实例.
public static Matrix4X4 CreateRotationX(double angle)
result = Matrix4X4.CreateRotationX(angle)
为绕X轴旋转而构建自转矩阵。
- angle
- 弧度的逆时针角度.
返回值: 由此而来的主母体4实例.
public static Matrix4X4 CreateRotationY(double angle)
result = Matrix4X4.CreateRotationY(angle)
为 Y 轴周围的旋转构建自转矩阵。
- angle
- 弧度的逆时针角度.
返回值: 由此而来的主母体4实例.
public static void CreateRotationY(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationY(angle, result)
为 Y 轴周围的旋转构建自转矩阵。
- angle
- 弧度的逆时针角度.
- result
- 由此而来的主母体4实例.
public static Matrix4X4 CreateRotationZ(double angle)
result = Matrix4X4.CreateRotationZ(angle)
构建一个围绕z轴旋转的旋转矩阵。
- angle
- 弧度的逆时针角度.
返回值: 由此而来的主母体4实例.
public static void CreateRotationZ(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationZ(angle, result)
构建一个围绕z轴旋转的旋转矩阵。
- angle
- 弧度的逆时针角度.
- result
- 由此而来的主母体4实例.
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
- 由此而来,Metro4d 的例子。
public static Matrix4X4 CreateTranslation(double x, double y, double z)
result = Matrix4X4.CreateTranslation(x, y, z)
创建翻译矩阵。
- x
- X译.
- y
- Y译.
- z
- Z译.
返回值: 由此而来,Metro4d 的例子。
public static Matrix4X4 CreateTranslation(Vector3 vector)
result = Matrix4X4.CreateTranslation(vector)
创建翻译矩阵。
- vector
- 译出向量.
返回值: 由此而来,Metro4d 的例子。
public static void CreateTranslation(Vector3 vector, Matrix4X4 result)
Matrix4X4.CreateTranslation(vector, result)
创建翻译矩阵。
- vector
- 译出向量.
- result
- 由此而来,Metro4d 的例子。
public override bool Equals(object obj)
result = matrix4X4.Equals(obj)
指示此实例与指定的对象是否相等。
- obj
- 要比较的对象 。
返回值: 如果情况相等,则属实;否则,则属实。
public bool Equals(Matrix4X4 other)
result = matrix4X4.Equals(other)
表示当前矩阵是否与另一个矩阵相等。
- other
- 与本矩阵相比较的矩阵 。
返回值: 如果当前矩阵与矩阵参数相等,则为真;否则,为假。
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
- 反转矩阵
返回值: 如果矩阵有一个, 则矩阵的反向, 如果是单数, 则输入
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
- 世界空间上向量(不应与相机方向平行,即目标-眼睛)
返回值: 将世界空间转换成相机空间的矩阵4
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)
相乘为二相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相
- left
- 相乘之相左相为相.
- right
- 右一行相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相
返回值: 乘法产生的一个新实例
public static void Mult(Matrix4X4 left, Matrix4X4 right, Matrix4X4 result)
Matrix4X4.Mult(left, right, result)
相乘为二相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相
- left
- 相乘之相左相为相.
- right
- 右一行相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相
- result
- 乘法产生的一个新实例
public static bool op_Equality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Equality(left, right)
比较两个平等的例子。
- left
- 初一释.
- right
- 二证相.
返回值: 正确,如果左等右;否则是虚假的。
public static bool op_Inequality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Inequality(left, right)
比较了不平等的两个情况。
- left
- 初一释.
- right
- 二证相.
返回值: 正确,如果左侧不等于权利;否则是虚假的。
public static Matrix4X4 op_Multiply(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Multiply(left, right)
矩阵乘法
- left
- 左手操作
- right
- 右手操作
返回值: 新的矩阵44 持有乘法的结果
public static Matrix4X4 Perspective(double fovy, double aspect, double near, double far)
result = Matrix4X4.Perspective(fovy, aspect, near, far)
构建一个预测矩阵
- fovy
- 以弧度为方向的视域角
- aspect
- 视图的相向比( 宽度 / 高)
- near
- 距离相近的剪接平面
- far
- 距离相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相距相相相距相距相相相相距相距相距相相相相相相相距相相相
返回值: 将相机空间转换为光栅空间的投影矩阵
public override string ToString()
result = matrix4X4.ToString()
返回代表当前矩阵44的 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
- 计算结果