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
- Третий пункт третьего ряда.
- m23
- Первый пункт третьего ряда.
- m30
- Четвертый пункт четвертого ряда.
- m31
- Второй пункт четвертого ряда.
- m32
- Третий пункт четвертого ряда.
- m33
- Четвертый пункт четвертого ряда.
Свойства
public double Determinant { get; }
value = matrix4X4.Determinant
Определяющее значение этой матрицы
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 Vector3 Position { get; }
value = matrix4X4.Position
Выйдите из матрицы только в позиции.
Методы
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
- Левый край вида frustum
- right
- Правый край обзора frustum
- bottom
- Нижний край вида frustum
- top
- Верхний край вида frustum
- 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
- Левый край вида frustum
- right
- Правый край обзора frustum
- bottom
- Нижний край вида frustum
- top
- Верхний край вида frustum
- 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
- Перевод.
- z
- Перевод Z.
- result
- Полученный экземпляр Matrix4d.
public static Matrix4X4 CreateTranslation(double x, double y, double z)
result = Matrix4X4.CreateTranslation(x, y, z)
Создание матрицы перевода.
- x
- Перевод X.
- 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
- Объект для сравнения.
Возвращает: Истинно, если примеры равны; ложно иное.
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
- Левый край вида frustum
- right
- Правый край обзора frustum
- bottom
- Нижний край вида frustum
- top
- Верхний край вида frustum
- near
- Расстояние до ближайшей плоскости клипа
- far
- Расстояние до дальнего клипера
Возвращает: Проекционная матрица, которая преобразует пространство камеры в растровое пространство
public override int GetHashCode()
result = matrix4X4.GetHashCode()
Возвращает хеш-код для этого случая.
Возвращает: A 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
- Вектор вверх в мировом пространстве (не должен быть параллельным направлению камеры, то есть мишени - глаза)
Возвращает: Matrix4 преобразует мировое пространство в пространство камеры
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
- Угол поля зрения в направлении y (в радианах)
- aspect
- Соотношение сторон вида (ширина/высота)
- near
- Расстояние до ближайшей плоскости клипа
- far
- Расстояние до дальнего клипера
Возвращает: Проекционная матрица, которая преобразует пространство камеры в растровое пространство
public override string ToString()
result = matrix4X4.ToString()
Возвращает System.String, который представляет текущую матрицу 44.
public void Transpose()
matrix4X4.Transpose()
Преобразует этот экземпляр в его транспонирование.
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
- Результат расчета