reckfellENGINE

Quaternion

Кватернион для представления и интерполяции 3D-поворота.

На этой странице
struct QuaternionReckfellSharpНаследует ValueType

Для вращения используйте единичный Quaternion. Quaternion.Identity задаёт отсутствие поворота; нулевая структура не является тождественным вращением. Slerp интерполирует ориентации; это не покомпонентное усреднение углов Euler.

Входы должны быть нормализованы, а вес задаёт долю перехода. Совпадающие ориентации могут иметь противоположные знаки всех компонент кватерниона, поэтому сравнение сырых компонент не заменяет сравнение поворота. Поворот не хранит перенос или масштаб Entity.

Практическое руководство.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

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

Quaternion4 перегрузки
# Quaternion · 1/4
C#
public Quaternion(Basis basis);

Создает Quaternion, определенный заданными значениями. Примечание: Только нормализованные кватернионы представляют вращение; если эти значения не нормализованы, новый Quaternion не будет допустимым для вращения.

Параметры
ИмяТипПо умолчанию
basisBasis—
basis

:: Basis чтобы строить из.

# Quaternion · 2/4
C#
public Quaternion(Vector3 arcFrom, Vector3 arcTo);

Создает Quaternion, определенный заданными значениями. Примечание: Только нормализованные кватернионы представляют вращение; если эти значения не нормализованы, новый Quaternion не будет допустимым для вращения.

Параметры
ИмяТипПо умолчанию
arcFromVector3—
arcToVector3—
# Quaternion · 3/4
C#
public Quaternion(Vector3 axis, float angle);

Создает Quaternion, определенный заданными значениями. Примечание: Только нормализованные кватернионы представляют вращение; если эти значения не нормализованы, новый Quaternion не будет допустимым для вращения.

Параметры
ИмяТипПо умолчанию
axisVector3—
anglefloat—
axis

Ось, чтобы повернуться, должна быть нормализована.

angle

Угол поворота в радианах.

# Quaternion · 4/4
C#
public Quaternion(float x, float y, float z, float w);

Создает Quaternion, определенный заданными значениями. Примечание: Только нормализованные кватернионы представляют вращение; если эти значения не нормализованы, новый Quaternion не будет допустимым для вращения.

Параметры
ИмяТипПо умолчанию
xfloat—
yfloat—
zfloat—
wfloat—
x

X компонент кватерниона (императивный элемент) i часть оси).

y

Y компонент кватерниона (императивный) j часть оси).

z

Z компонент кватерниона (императивный) k часть оси).

w

W компонент кватерниона (реальная часть).

Свойства2

IdentityСвойство
# Identity
C#
public static Quaternion Identity { get; }

Идентификационный кватер, не представляющий собой вращение. Basis.Identity. Если a Vector3 Поворачивается (многократно) этим кватернионом, он не меняется. Примечание: В C# эта константа эквивалентна созданию a [конструктор Quaternion] без каких-либо аргументов. Он может быть использован для того, чтобы сделать ваш код более ясным и чтобы он соответствовал C#.

ItemСвойство
# Item
C#
public float this[int index] { get; set; }

Доступ к компонентам кватерниона с использованием их индекса.

Методы36

AngleTofloat
# AngleTo
C#
public float AngleTo(Quaternion to);

Возвращает угол между этим кватернионом и to. Это величина угла, на который вам нужно повернуть, чтобы перейти от одного к другому. Примечание: Величина ошибки с плавающей точкой для этого метода аномально высока, поэтому такие методы, как is_zero_approx, не будут работать надежно.

Параметры
ИмяТипПо умолчанию
toQuaternion—
to

Другой кватернион.

Возвращает float

Угол между кватернионами.

Dotfloat
# Dot
C#
public float Dot(Quaternion b);

Возвращает скалярное произведение между этим кватернионом и with. Это эквивалентно (quat.x * with.x) + (quat.y * with.y) + (quat.z * with.z) + (quat.w * with.w).

Параметры
ИмяТипПо умолчанию
bQuaternion—
b

Другой кватернион.

Возвращает float

Скалярное произведение.

Equals2 перегрузки
# Equals · 1/2
C#
public bool Equals(Quaternion other);

Returns (Возврат) true если этот кватерион и other равны.

Параметры
ИмяТипПо умолчанию
otherQuaternion—
other

Другой кватернион для сравнения.

Возвращает bool

Неважно, равны ли кватернионы.

# Equals · 2/2
C#
public override bool Equals(object? obj);

Returns (Возврат) true если этот кватерион и obj равны.

Параметры
ИмяТипПо умолчанию
objobject—
obj

Другой объект для сравнения.

Возвращает bool

Является ли кватерион и другой объект точно равны.

ExpQuaternion
# Exp
C#
public Quaternion Exp();

Возвращает экспоненту этого кватерниона. Ось вращения результата — нормализованная ось вращения этого кватерниона, угол результата — длина векторной части этого кватерниона.

Возвращает Quaternion
FromEulerQuaternion
# FromEuler
C#
public static Quaternion FromEuler(Vector3 eulerYXZ);

Создает новый Quaternion из заданного Vector3, углов Эйлера в радианах. В Reckfell углы Эйлера всегда используют внутренний порядок. Этот метод всегда использует внутреннюю конвенцию YXZ (EULER_ORDER_YXZ).

Параметры
ИмяТипПо умолчанию
eulerYXZVector3—
eulerYXZ

Углы Эйлера, по которым кватер будет вращаться.

Возвращает Quaternion
GetAnglefloat
# GetAngle
C#
public float GetAngle();

Возвращает угол поворота, представленный этим кватернионом. Примечание: Кватернион должен быть нормализован.

Возвращает float
GetAxisVector3
# GetAxis
C#
public Vector3 GetAxis();

Возвращает ось вращения, представленную этим кватернионом.

Возвращает Vector3
GetEulerVector3
# GetEuler
C#
public Vector3 GetEuler(EulerOrder order = EulerOrder.Yxz);

Возвращает вращение этого кватерниона как Vector3 углов Эйлера в радианах. Порядок каждого последовательного вращения можно изменить с помощью order (см. константы EulerOrder). По умолчанию используется соглашение YXZ (EULER_ORDER_YXZ): сначала вычисляется Z (roll), затем X (pitch) и, наконец, Y (yaw). При использовании противоположного метода Quaternion.FromEuler этот порядок меняется на обратный.

Параметры
ИмяТипПо умолчанию
orderEulerOrderEulerOrder.Yxz
Возвращает Vector3

Отражение угла Эйлера этого кватерниона.

GetHashCodeint
# GetHashCode
C#
public override int GetHashCode();

Выполняет функцию хеширования Quaternion.

Возвращает int

Код хэша для этого кватерниона.

InverseQuaternion
# Inverse
C#
public Quaternion Inverse();

Возвращает обратную версию этого кватерниона, инвертируя знак каждого компонента, кроме Quaternion.W.

###=равный_ примерно

Возвращает Quaternion

Обратный кватерион.

IsEqualApproxbool
# IsEqualApprox
C#
public bool IsEqualApprox(Quaternion other);

Возвращает true, если этот кватернион и to приблизительно равны, вызывая @GlobalScope.is_equal_approx для каждого компонента.

Параметры
ИмяТипПо умолчанию
otherQuaternion—
other

Другой кватернион для сравнения.

Возвращает bool

Вне зависимости от того, равны ли кватернионы.

IsFinitebool
# IsFinite
C#
public bool IsFinite();

Возвращает true, если этот кватернион конечен, вызывая @GlobalScope.is_finite для каждого компонента.

Возвращает bool

Является ли этот вектор конечным или нет.

IsNormalizedbool
# IsNormalized
C#
public bool IsNormalized();

Возвращает true, если этот кватернион нормализован. См. также Quaternion.Normalized.

Возвращает bool

A bool для того, нормализован ли кватерион или нет.

Lengthfloat
# Length
C#
public float Length();

Возвращает длину этого кватерниона, также называемую величиной.

Возвращает float
LengthSquaredfloat
# LengthSquared
C#
public float LengthSquared();

Возвращает длину этого кватерниона, возведенную в квадрат. Примечание: Этот метод быстрее, чем Quaternion.Length, поэтому предпочитайте его, если вам нужно только сравнить длины кватернионов.

Возвращает float
LogQuaternion
# Log
C#
public Quaternion Log();

Возвращает логарифм этого кватерниона. Умножает ось вращения этого кватерниона на его угол вращения и сохраняет результат в векторной части возвращаемого кватерниона (Quaternion.X, Quaternion.Y и Quaternion.Z). Действительная часть возвращаемого кватерниона (Quaternion.W) всегда равна 0.0.

Возвращает Quaternion
NormalizedQuaternion
# Normalized
C#
public Quaternion Normalized();

Возвращает копию этого кватерниона, нормализованную так, что ее длина равна 1.0. См. также Quaternion.IsNormalized.

Возвращает Quaternion

Нормализованный кватерион.

SlerpQuaternion
# Slerp
C#
public Quaternion Slerp(Quaternion to, float weight);

Сферически интерполирует между единичными кватернионами ориентации. Вес задаёт долю перехода, а не угловую скорость или секунды.

Параметры
ИмяТипПо умолчанию
toQuaternion—
weightfloat—
to

Кватерион назначения для интерполяции должен быть нормализован

weight

Значение на диапазоне от 0,0 до 1,0, представляющее собой величину интерполяции.

Возвращает Quaternion

Вытекающий кватерион интерполяции.

SlerpniQuaternion
# Slerpni
C#
public Quaternion Slerpni(Quaternion to, float weight);

Выполняет сферически-линейную интерполяцию с кватернионом to, заданным weight и возвращает результат. В отличие от Quaternion.Slerp, этот метод не проверяет, является ли путь вращения меньше 90 градусов. И этот кватернион, и to должны быть нормализованы.

Параметры
ИмяТипПо умолчанию
toQuaternion—
weightfloat—
to

Кватерион назначения для интерполяции должен быть нормализован

weight

Значение на диапазоне от 0,0 до 1,0, представляющее собой величину интерполяции.

Возвращает Quaternion

Вытекающий кватерион интерполяции.

SphericalCubicInterpolateQuaternion
# SphericalCubicInterpolate
C#
public Quaternion SphericalCubicInterpolate(Quaternion b, Quaternion preA, Quaternion postB, float weight);

Осуществляет сферическую кубическую интерполяцию между кватернионами pre_a, этот кватерион, b, и post_bна указанную сумму weight.

Параметры
ИмяТипПо умолчанию
bQuaternion—
preAQuaternion—
postBQuaternion—
weightfloat—
b

Кватерион назначения.

preA

Кватернион перед этим кватерноном.

postB

Кватернион после b.

weight

Значение на диапазоне от 0,0 до 1,0, представляющее собой величину интерполяции.

Возвращает Quaternion

Межполюсный кватерион.

SphericalCubicInterpolateInTimeQuaternion
# SphericalCubicInterpolateInTime
C#
public Quaternion SphericalCubicInterpolateInTime(Quaternion b, Quaternion preA, Quaternion postB, float weight, float bT, float preAT, float postBT);

Осуществляет сферическую кубическую интерполяцию между кватернионами pre_a, этот кватерион, b, и post_bна указанную сумму weight. Он может осуществлять более гладкую интерполяцию, чем Quaternion.SphericalCubicInterpolate по временным значениям.

Параметры
ИмяТипПо умолчанию
bQuaternion—
preAQuaternion—
postBQuaternion—
weightfloat—
bTfloat—
preATfloat—
postBTfloat—
b

Кватерион назначения.

preA

Кватернион перед этим кватерноном.

postB

Кватернион после b.

weight

Значение на диапазоне от 0,0 до 1,0, представляющее собой величину интерполяции.

Возвращает Quaternion

Межполюсный кватерион.

ToString2 перегрузки
# ToString · 1/2
C#
public override string ToString();

Преобразует это Quaternion к а string.

Возвращает string

A string представительство этого кватерниона.

# ToString · 2/2
C#
public string ToString(string? format);

Преобразует это Quaternion к а string с указанным format.

Параметры
ИмяТипПо умолчанию
formatstring—
Возвращает string

A string представительство этого кватерниона.

op_AdditionQuaternion
# op_Addition
C#
public static Quaternion operator +(Quaternion left, Quaternion right);

Добавить каждый элемент левой части Quaternion права человека Quaternion. Эта операция не проводится Они имеют значение сами по себе, но могут быть использованы в качестве части более масштабное выражение, например приблизительное обозначение промежуточного ротация между двумя близлежащими вращениями.

Параметры
ИмяТипПо умолчанию
leftQuaternion—
rightQuaternion—
left

Кватерион слева добавить.

right

Правый кватерион добавить.

Возвращает Quaternion

Добавленный кватерион.

op_DivisionQuaternion
# op_Division
C#
public static Quaternion operator /(Quaternion left, float right);

Разделяет каждый компонент Quaternion Клянусь данным System.Single. Эта операция не проводится Они имеют значение сами по себе, но могут быть использованы в качестве части Большее выражение.

Параметры
ИмяТипПо умолчанию
leftQuaternion—
rightfloat—
left

Кватернион, чтобы разделить.

right

Ценность разделить на.

Возвращает Quaternion

Разделенный кватернион.

op_Equalitybool
# op_Equality
C#
public static bool operator ==(Quaternion left, Quaternion right);

Returns (Возврат) true если кватернионы в точности равны. Примечание: Из-за ошибок в точности в плавающей точке рассмотреть вопрос об использовании Quaternion.IsEqualApprox вместо этого, что более надежно.

Параметры
ИмяТипПо умолчанию
leftQuaternion—
rightQuaternion—
left

Левый кватерион.

right

Правый кватерион.

Возвращает bool

Неважно, равны ли кватернионы.

op_Inequalitybool
# op_Inequality
C#
public static bool operator !=(Quaternion left, Quaternion right);

Returns (Возврат) true если кватернионы не равны. Примечание: Из-за ошибок в точности в плавающей точке рассмотреть вопрос об использовании Quaternion.IsEqualApprox вместо этого, что более надежно.

Параметры
ИмяТипПо умолчанию
leftQuaternion—
rightQuaternion—
left

Левый кватерион.

right

Правый кватерион.

Возвращает bool

Не равны ли кватернионы?

op_Multiply5 перегрузок
# op_Multiply · 1/5
C#
public static Quaternion operator *(Quaternion left, Quaternion right);

Составляет эти два кватерниона, умножая их вместе. Это приводит к вращению второго кватерниона. (ребенка) первым кватерноном (родителя).

Параметры
ИмяТипПо умолчанию
leftQuaternion—
rightQuaternion—
left

Родительский кватерион.

right

Детский кватерион.

Возвращает Quaternion

Состоящий кватернион.

# op_Multiply · 2/5
C#
public static Vector3 operator *(Quaternion quaternion, Vector3 vector);

Возвращается a Vector3 Поворачивается (многократно) на кватернион.

Параметры
ИмяТипПо умолчанию
quaternionQuaternion—
vectorVector3—
quaternion

Катернион, чтобы ехать.

vector

A Vector3 Преобразовать.

Возвращает Vector3

Поворачивается Vector3.

# op_Multiply · 3/5
C#
public static Quaternion operator *(Quaternion left, float right);

Множить каждый элемент Quaternion Клянусь данным System.Single. Эта операция не проводится Они имеют значение сами по себе, но могут быть использованы в качестве части Большее выражение.

Параметры
ИмяТипПо умолчанию
leftQuaternion—
rightfloat—
left

Кватернион умножить.

right

Значение умножения на.

Возвращает Quaternion

Множественный кватерион.

# op_Multiply · 4/5
C#
public static Vector3 operator *(Vector3 vector, Quaternion quaternion);

Возвращается a Vector3 Поворачивается (многократно) на обратный кватерион. vector * quaternion эквивалентен quaternion.Inverse() * vectorСм. Quaternion.Inverse.

Параметры
ИмяТипПо умолчанию
vectorVector3—
quaternionQuaternion—
vector

A Vector3 Обратно вращаться.

quaternion

Катернион, чтобы ехать.

Возвращает Vector3

Обратно поворачивается Vector3.

# op_Multiply · 5/5
C#
public static Quaternion operator *(float left, Quaternion right);

Множить каждый элемент Quaternion Клянусь данным System.Single. Эта операция не проводится Они имеют значение сами по себе, но могут быть использованы в качестве части Большее выражение.

Параметры
ИмяТипПо умолчанию
leftfloat—
rightQuaternion—
left

Значение умножения на.

right

Кватернион умножить.

Возвращает Quaternion

Множественный кватерион.

op_SubtractionQuaternion
# op_Subtraction
C#
public static Quaternion operator -(Quaternion left, Quaternion right);

Вычитает каждый элемент левой части Quaternion правой Quaternion. Эта операция не проводится Они имеют значение сами по себе, но могут быть использованы в качестве части Большее выражение.

Параметры
ИмяТипПо умолчанию
leftQuaternion—
rightQuaternion—
left

Левый кватернион вычитать.

right

Правый кватернион вычитать.

Возвращает Quaternion

Вычтенный кватерион.

op_UnaryNegationQuaternion
# op_UnaryNegation
C#
public static Quaternion operator -(Quaternion quat);

Возвращает отрицательную стоимость Quaternion. Это то же самое, что и написание new Quaternion(-q.X, -q.Y, -q.Z, -q.W)Эта операция получается кватерион, который представляет собой такое же вращение.

Параметры
ИмяТипПо умолчанию
quatQuaternion—
quat

Кватернион отрицающий.

Возвращает Quaternion

Отрицаемый кватернион.

op_UnaryPlusQuaternion
# op_UnaryPlus
C#
public static Quaternion operator +(Quaternion quat);

Возвращает то же значение, как если бы + не было. Унарный + ничего не делает, но иногда он может сделать ваш код более читаемым.

Параметры
ИмяТипПо умолчанию
quatQuaternion—
quat

Кватернион, чтобы ничего не делать.

Возвращает Quaternion

Оригинальный кватернион.

Поля и константы4

WПоле
# W
C#
public float W;

W компонент кватерниона. Это "реальная" часть. Примечание: Quaternion Как правило, не следует напрямую манипулировать компонентами.

XПоле
# X
C#
public float X;

X компонент кватерниона. Это значение вдоль "имагинария" i ось. Примечание: Quaternion Как правило, не следует напрямую манипулировать компонентами.

YПоле
# Y
C#
public float Y;

Y компонент кватерниона. Это значение вдоль "имагинария" j ось. Примечание: Quaternion Как правило, не следует напрямую манипулировать компонентами.

ZПоле
# Z
C#
public float Z;

Z компонент кватерниона. k ось. Примечание: Quaternion Как правило, не следует напрямую манипулировать компонентами.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.