Matrix4X4

StockSharp.Xaml.Charting.Rendering.HighQualityRasterizer.Agg.VectorMath

Представляет матрицу 4x4 с компонентами двойной точности.

Реализует: IEquatable<Matrix4X4>

Конструкторы

Matrix4X4
public Matrix4X4(Vector4 row0, Vector4 row1, Vector4 row2, Vector4 row3)
matrix4X4 = Matrix4X4(row0, row1, row2, row3)

Построение нового экземпляра.

row0
Верхняя строка матрицы
row1
Второй ряд матрицы
row2
Третий ряд матрицы
row3
Нижняя строка матрицы
Matrix4X4
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
Четвертый пункт четвертого ряда.

Свойства

Column0
public Vector4 Column0 { get; }
value = matrix4X4.Column0

Первый столбец этой матрицы

Column1
public Vector4 Column1 { get; }
value = matrix4X4.Column1

Вторая колонка этой матрицы

Column2
public Vector4 Column2 { get; }
value = matrix4X4.Column2

Третья колонка этой матрицы

Column3
public Vector4 Column3 { get; }
value = matrix4X4.Column3

Четвертый столбец этой матрицы

Determinant
public double Determinant { get; }
value = matrix4X4.Determinant

Определяющее значение этой матрицы

M11
public double M11 { get; set; }
value = matrix4X4.M11
matrix4X4.M11 = value

Получает или устанавливает значение в строке 1, столбце 1 этого экземпляра.

M12
public double M12 { get; set; }
value = matrix4X4.M12
matrix4X4.M12 = value

Получает или устанавливает значение в строке 1, столбце 2 этого экземпляра.

M13
public double M13 { get; set; }
value = matrix4X4.M13
matrix4X4.M13 = value

Получает или устанавливает значение в строке 1, столбце 3 этого экземпляра.

M14
public double M14 { get; set; }
value = matrix4X4.M14
matrix4X4.M14 = value

Получает или устанавливает значение в строке 1, столбце 4 этого экземпляра.

M21
public double M21 { get; set; }
value = matrix4X4.M21
matrix4X4.M21 = value

Получает или устанавливает значение в строке 2, столбце 1 этого экземпляра.

M22
public double M22 { get; set; }
value = matrix4X4.M22
matrix4X4.M22 = value

Получает или устанавливает значение в строке 2, столбце 2 этого экземпляра.

M23
public double M23 { get; set; }
value = matrix4X4.M23
matrix4X4.M23 = value

Получает или устанавливает значение в строке 2, столбце 3 этого экземпляра.

M24
public double M24 { get; set; }
value = matrix4X4.M24
matrix4X4.M24 = value

Получает или устанавливает значение в строке 2, столбце 4 этого экземпляра.

M31
public double M31 { get; set; }
value = matrix4X4.M31
matrix4X4.M31 = value

Получает или устанавливает значение в строке 3, столбце 1 этого экземпляра.

M32
public double M32 { get; set; }
value = matrix4X4.M32
matrix4X4.M32 = value

Получает или устанавливает значение в строке 3, столбце 2 этого экземпляра.

M33
public double M33 { get; set; }
value = matrix4X4.M33
matrix4X4.M33 = value

Получает или устанавливает значение в строке 3, столбце 3 этого экземпляра.

M34
public double M34 { get; set; }
value = matrix4X4.M34
matrix4X4.M34 = value

Получает или устанавливает значение в строке 3, столбце 4 этого экземпляра.

M41
public double M41 { get; set; }
value = matrix4X4.M41
matrix4X4.M41 = value

Получает или устанавливает значение в строке 4, столбце 1 этого экземпляра.

M42
public double M42 { get; set; }
value = matrix4X4.M42
matrix4X4.M42 = value

Получает или устанавливает значение в строке 4, столбце 2 этого экземпляра.

M43
public double M43 { get; set; }
value = matrix4X4.M43
matrix4X4.M43 = value

Получает или устанавливает значение в строке 4, столбце 3 этого экземпляра.

M44
public double M44 { get; set; }
value = matrix4X4.M44
matrix4X4.M44 = value

Получает или устанавливает значение в строке 4, столбце 4 этого экземпляра.

Position
public Vector3 Position { get; }
value = matrix4X4.Position

Выйдите из матрицы только в позиции.

Методы

CreateFromAxisAngle
public static void CreateFromAxisAngle(Vector3 axis, double angle, Matrix4X4 result)
Matrix4X4.CreateFromAxisAngle(axis, angle, result)

Построить матрицу вращения из заданной оси/угла вращения.

axis
Ось для вращения вокруг.
angle
Угол в радианах вращать против часовой стрелки (смотря в направлении данной оси).
result
Пример матрицы.
CreateFromAxisAngle
public static Matrix4X4 CreateFromAxisAngle(Vector3 axis, double angle)
result = Matrix4X4.CreateFromAxisAngle(axis, angle)

Построить матрицу вращения из заданной оси/угла вращения.

axis
Ось для вращения вокруг.
angle
Угол в радианах вращать против часовой стрелки (смотря в направлении данной оси).

Возвращает: Пример матрицы.

CreateOrthographic
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.
CreateOrthographic
public static Matrix4X4 CreateOrthographic(double width, double height, double zNear, double zFar)
result = Matrix4X4.CreateOrthographic(width, height, zNear, zFar)

Создает орфографическую проекционную матрицу.

width
Ширина проекционного объема.
height
Высота проекционного объема.
zNear
Ближайший край проекционного объема.
zFar
Крайний край проекционного объема.
CreateOrthographicOffCenter
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.

CreateOrthographicOffCenter
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.
CreatePerspectiveFieldOfView
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
Проекционная матрица, которая преобразует пространство камеры в растровое пространство
CreatePerspectiveFieldOfView
public static Matrix4X4 CreatePerspectiveFieldOfView(double fovYRadians, double aspectWidthOverHeight, double zNear, double zFar)
result = Matrix4X4.CreatePerspectiveFieldOfView(fovYRadians, aspectWidthOverHeight, zNear, zFar)

Создание перспективной проекционной матрицы.

fovYRadians
Угол поля зрения в направлении y (в радианах)
aspectWidthOverHeight
Соотношение сторон вида (ширина/высота)
zNear
Расстояние до ближайшей плоскости клипа
zFar
Расстояние до дальнего клипера

Возвращает: Проекционная матрица, которая преобразует пространство камеры в растровое пространство

CreatePerspectiveOffCenter
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
Проекционная матрица, которая преобразует пространство камеры в растровое пространство
CreatePerspectiveOffCenter
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
Расстояние до дальнего клипера

Возвращает: Проекционная матрица, которая преобразует пространство камеры в растровое пространство

CreateRotation
public static Matrix4X4 CreateRotation(Vector3 axis, double angle)
result = Matrix4X4.CreateRotation(axis, angle)

Построить матрицу вращения для вращения вокруг данной оси

axis
Ось для вращения вокруг
angle
угол в радианах для поворота против часовой стрелки (смотря в направлении данной оси)

Возвращает: Матрица вращения

CreateRotation
public static Matrix4X4 CreateRotation(Quaternion q)
result = Matrix4X4.CreateRotation(q)

Построить матрицу вращения из кватерниона

q
кватернион

Возвращает: Матрица вращения

CreateRotationX
public static void CreateRotationX(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationX(angle, result)

Строит матрицу вращения для вращения вокруг оси x.

angle
Угол против часовой стрелки в радианах.
result
Полученный экземпляр матрицы 4.
CreateRotationX
public static Matrix4X4 CreateRotationX(double angle)
result = Matrix4X4.CreateRotationX(angle)

Строит матрицу вращения для вращения вокруг оси x.

angle
Угол против часовой стрелки в радианах.

Возвращает: Полученный экземпляр матрицы 4.

CreateRotationY
public static Matrix4X4 CreateRotationY(double angle)
result = Matrix4X4.CreateRotationY(angle)

Постраивает матрицу вращения для вращения вокруг оси y.

angle
Угол против часовой стрелки в радианах.

Возвращает: Полученный экземпляр матрицы 4.

CreateRotationY
public static void CreateRotationY(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationY(angle, result)

Постраивает матрицу вращения для вращения вокруг оси y.

angle
Угол против часовой стрелки в радианах.
result
Полученный экземпляр матрицы 4.
CreateRotationZ
public static Matrix4X4 CreateRotationZ(double angle)
result = Matrix4X4.CreateRotationZ(angle)

Строит матрицу вращения для вращения вокруг оси z.

angle
Угол против часовой стрелки в радианах.

Возвращает: Полученный экземпляр матрицы 4.

CreateRotationZ
public static void CreateRotationZ(double angle, Matrix4X4 result)
Matrix4X4.CreateRotationZ(angle, result)

Строит матрицу вращения для вращения вокруг оси z.

angle
Угол против часовой стрелки в радианах.
result
Полученный экземпляр матрицы 4.
CreateScale
public static Matrix4X4 CreateScale(double x, double y, double z)
result = Matrix4X4.CreateScale(x, y, z)

Построить матрицу масштабирования

x
Масштабный коэффициент для оси x
y
Масштабный коэффициент для оси y
z
Масштабный коэффициент для z-оси

Возвращает: Матрицы масштабирования

CreateScale
public static Matrix4X4 CreateScale(Vector3 scale)
result = Matrix4X4.CreateScale(scale)

Построить матрицу масштабирования

scale
Масштабные коэффициенты для осей x,y и z

Возвращает: Матрицы масштабирования

CreateScale
public static Matrix4X4 CreateScale(double scale)
result = Matrix4X4.CreateScale(scale)

Построить матрицу масштабирования

scale
Единый масштабный коэффициент для осей x,y и z

Возвращает: Матрицы масштабирования

CreateTranslation
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.
CreateTranslation
public static Matrix4X4 CreateTranslation(double x, double y, double z)
result = Matrix4X4.CreateTranslation(x, y, z)

Создание матрицы перевода.

x
Перевод X.
y
Перевод.
z
Перевод Z.

Возвращает: Полученный экземпляр Matrix4d.

CreateTranslation
public static Matrix4X4 CreateTranslation(Vector3 vector)
result = Matrix4X4.CreateTranslation(vector)

Создание матрицы перевода.

vector
Вектор перевода.

Возвращает: Полученный экземпляр Matrix4d.

CreateTranslation
public static void CreateTranslation(Vector3 vector, Matrix4X4 result)
Matrix4X4.CreateTranslation(vector, result)

Создание матрицы перевода.

vector
Вектор перевода.
result
Полученный экземпляр Matrix4d.
Equals
public override bool Equals(object obj)
result = matrix4X4.Equals(obj)

Указывает, равны ли данный экземпляр и заданный объект.

obj
Объект для сравнения.

Возвращает: Истинно, если примеры равны; ложно иное.

Equals
public bool Equals(Matrix4X4 other)
result = matrix4X4.Equals(other)

Указывает, равна ли текущая матрица другой матрице.

other
Матрица для сравнения с этой матрицей.

Возвращает: истинно, если матрица тока равна параметру матрицы; в противном случае ложно.

Frustum
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
Расстояние до дальнего клипера

Возвращает: Проекционная матрица, которая преобразует пространство камеры в растровое пространство

GetHashCode
public override int GetHashCode()
result = matrix4X4.GetHashCode()

Возвращает хеш-код для этого случая.

Возвращает: A System.Int32, содержащий уникальный хеш-код для этого случая.

Invert
public void Invert()
matrix4X4.Invert()

Преобразует этот пример в обратный.

Invert
public static Matrix4X4 Invert(Matrix4X4 mat)
result = Matrix4X4.Invert(mat)

Вычислить обратную сторону данной матрицы

mat
Матрица для инвертирования

Возвращает: Инверсия данной матрицы, если она имеет одну, или вход, если она сингулярна.

LookAt
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 преобразует мировое пространство в пространство камеры

LookAt
public static Matrix4X4 LookAt(Vector3 eye, Vector3 target, Vector3 up)
result = Matrix4X4.LookAt(eye, target, up)

Создайте мировое пространство для камеры матрицы пространства

eye
Положение глаз (камеры) в мировом пространстве
target
Целевая позиция в мировом пространстве
up
Вектор вверх в мировом пространстве (не должен быть параллельным направлению камеры, то есть мишени - глаза)

Возвращает: Матрица, преобразующая мировое пространство в пространство камеры

Mult
public static Matrix4X4 Mult(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.Mult(left, right)

Умножьте два экземпляра.

left
Левый операнд умножения.
right
Правильный операнд умножения.

Возвращает: Новый случай, являющийся результатом умножения

Mult
public static void Mult(Matrix4X4 left, Matrix4X4 right, Matrix4X4 result)
Matrix4X4.Mult(left, right, result)

Умножьте два экземпляра.

left
Левый операнд умножения.
right
Правильный операнд умножения.
result
Новый случай, являющийся результатом умножения
op_Equality
public static bool op_Equality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Equality(left, right)

Сравните два примера равенства.

left
Первый случай.
right
Второй случай.

Возвращает: Верно, если левое равно правому; ложно иначе.

op_Inequality
public static bool op_Inequality(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Inequality(left, right)

Сравните два примера неравенства.

left
Первый случай.
right
Второй случай.

Возвращает: Правда, если левый не равен правому; ложный иначе.

op_Multiply
public static Matrix4X4 op_Multiply(Matrix4X4 left, Matrix4X4 right)
result = Matrix4X4.op_Multiply(left, right)

Умножение матрицы

left
левый операнд
right
правый операн

Возвращает: Новая матрица 44, которая содержит результат умножения

Perspective
public static Matrix4X4 Perspective(double fovy, double aspect, double near, double far)
result = Matrix4X4.Perspective(fovy, aspect, near, far)

Создайте проекционную матрицу

fovy
Угол поля зрения в направлении y (в радианах)
aspect
Соотношение сторон вида (ширина/высота)
near
Расстояние до ближайшей плоскости клипа
far
Расстояние до дальнего клипера

Возвращает: Проекционная матрица, которая преобразует пространство камеры в растровое пространство

ToString
public override string ToString()
result = matrix4X4.ToString()

Возвращает System.String, который представляет текущую матрицу 44.

Transpose
public void Transpose()
matrix4X4.Transpose()

Преобразует этот экземпляр в его транспонирование.

Transpose
public static Matrix4X4 Transpose(Matrix4X4 mat)
result = Matrix4X4.Transpose(mat)

Вычислить транспозицию данной матрицы

mat
Матрица для транспонирования

Возвращает: Перенос данной матрицы

Transpose
public static void Transpose(Matrix4X4 mat, Matrix4X4 result)
Matrix4X4.Transpose(mat, result)

Вычислить транспозицию данной матрицы

mat
Матрица для транспонирования
result
Результат расчета

Поля

Identity
public static Matrix4X4 Identity
value = Matrix4X4.Identity

Матрица идентичности

Row0
public Vector4 Row0
value = matrix4X4.Row0

Верхняя строка матрицы

Row1
public Vector4 Row1
value = matrix4X4.Row1

2-я строка матрицы

Row2
public Vector4 Row2
value = matrix4X4.Row2

3-я строка матрицы

Row3
public Vector4 Row3
value = matrix4X4.Row3

Нижняя строка матрицы