| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| ru:math [2019/04/18 20:25] – [min] korshun | ru:math [2019/04/18 20:33] (current) – [RotateVectorCS] korshun |
|---|
| ''num max(num a, num b)'' | ''num max(num a, num b)'' |
| |
| Returns the greater of two numbers. | Возвращает большее из двух чисел. |
| |
| ==== clamp ==== | ==== clamp ==== |
| ''num clamp(num x, num mininum, num maximum)'' | ''num clamp(num x, num минимум, num максимум)'' |
| |
| Limits X to the specified range: | Ограничивает X в указанном диапазоне: |
| * If X < mininum, returns the minumum. | * Если X меньше минимума, возвращает минимум. |
| * If X is between mininum and maximum, returns X. | * Если X между минимумом и максимумом, возвращает X. |
| * If X > maximum, returns the maximum. | * Если X больше максимума, возвращает максимум. |
| |
| ==== cmp ==== | ==== cmp ==== |
| ''int cmp(num a, num b)'' | ''int cmp(num a, num b)'' |
| |
| Compares two numbers and returns the result: | Сравнивает два числа и возвращает результат: |
| * If A > B, returns ''1''. | * Если A > B, возвращает ''1''. |
| * If A = B, returns ''0''. | * Если A = B, возвращает ''0''. |
| * If A < B, returns ''-1''. | * Если A < B, возвращает ''-1''. |
| |
| |
| ===== Trigonometry ===== | ===== Тригонометрия ===== |
| |
| ACSUtils provides a full set of trigonometric functions: | ACSUtils предоставляет полный набор тригонометрических функций: |
| |
| * [[zdoom>sin]] is already built into ZDoom. | * [[zdoom>sin]] уже встроен в ZDoom. |
| * [[zdoom>cos]] is already built into ZDoom. | * [[zdoom>cos]] уже встроен в ZDoom. |
| * ''fixed tan(fixed angle)'' -- implemented as ''FixedDiv(sin(x), cos(x))''. | * ''fixed tan(fixed angle)'' -- реализован как ''FixedDiv(sin(x), cos(x))''. |
| * ''fixed cot(fixed angle)'' -- implemented as ''FixedDiv(cos(x), sin(x))''. | * ''fixed cot(fixed angle)'' -- реализован как ''FixedDiv(cos(x), sin(x))''. |
| * ''fixed sec(fixed angle)'' -- implemented as ''FixedDiv(1.0, sin(x))''. | * ''fixed sec(fixed angle)'' -- реализован как ''FixedDiv(1.0, sin(x))''. |
| * ''fixed cosec(fixed angle)'' -- implemented as ''FixedDiv(1.0, cos(x))''. | * ''fixed cosec(fixed angle)'' -- реализован как ''FixedDiv(1.0, cos(x))''. |
| |
| Inverse trigonometric functions: | Inverse trigonometric functions: |
| * ''fixed atan(fixed x)'' -- implemented as ''[[zdoom>VectorAngle]](1.0, x)''. | * ''fixed atan(fixed x)'' -- реализован как ''[[zdoom>VectorAngle]](1.0, x)''. |
| * ''fixed acot(fixed x)'' -- implemented as ''0.25 - atan(x)''. | * ''fixed acot(fixed x)'' -- реализован как ''0.25 - atan(x)''. |
| * ''fixed asin(fixed x)'' -- implemented as ''atan(FixedDiv(x, FixedSqrt(1.0 - FixedMul(x, x))))''. | * ''fixed asin(fixed x)'' -- реализован как ''atan(FixedDiv(x, FixedSqrt(1.0 - FixedMul(x, x))))''. |
| * ''fixed acos(fixed x)'' -- implemented as ''ang(2 * atan(FixedSqrt(FixedDiv(1.0 - x, 1.0 + x))))''. | * ''fixed acos(fixed x)'' -- реализован как ''ang(2 * atan(FixedSqrt(FixedDiv(1.0 - x, 1.0 + x))))''. |
| * ''fixed asec(fixed x)'' -- implemented as ''acos(FixedDiv(1.0, x))''. | * ''fixed asec(fixed x)'' -- реализован как ''acos(FixedDiv(1.0, x))''. |
| * ''fixed acosec(fixed x)'' -- implemented as ''asin(FixedDiv(1.0, x))''. | * ''fixed acosec(fixed x)'' -- реализован как ''asin(FixedDiv(1.0, x))''. |
| |
| |
| ''fixed VectorLength3D(fixed x, fixed y, fixed z)'' | ''fixed VectorLength3D(fixed x, fixed y, fixed z)'' |
| |
| A 3D version of [[zdoom>VectorLength]]. Returns the length of the 3D vector. | Трёхмерная версия [[zdoom>VectorLength]]. Возвращает длину трёхмерного вектора. |
| |
| ==== dot ==== | ==== dot ==== |
| * 3D: ''fixed dot3(fixed x1, fixed y1, fixed z1, fixed x2, fixed y2, fixed z2)'' | * 3D: ''fixed dot3(fixed x1, fixed y1, fixed z1, fixed x2, fixed y2, fixed z2)'' |
| |
| Returns the [[wp>dot product]] of two vectors. Shorthand for writing out ''FixedMul(x1, x2) + FixedMul(y1, y2) + ...''. | Возвращает [[wp>dot product|скалярное произведение]] двух векторов. Краткий способ записи ''FixedMul(x1, x2) + FixedMul(y1, y2) + ...''. |
| |
| ==== normalize ==== | ==== normalize ==== |
| * 3D: ''fixed, fixed, fixed normalize3d(fixed x, fixed y, fixed z)'' | * 3D: ''fixed, fixed, fixed normalize3d(fixed x, fixed y, fixed z)'' |
| |
| [[wp>Normalized vector|Normalizes]] the vector and returns the result using [[multiple return values]]. | [[wp>Normalized vector|Нормализует]] вектор и возвращает результат, используя [[multiple return values|несколько возвращаемых значений]]. |
| |
| === Example usage === | === Пример использования === |
| <code> | <code> |
| normalize3d(x, y, z); | normalize3d(x, y, z); |
| ''fixed, fixed RotateVector(fixed x, fixed y, fixed angle)'' | ''fixed, fixed RotateVector(fixed x, fixed y, fixed angle)'' |
| | |
| Rotates the vector by the angle and returns the result using [[multiple return values]]. | Поворачивает вектор на указанный угол и возвращает результат, используя [[multiple return values|несколько возвращаемых значений]]. |
| |
| === Example usage === | === Example usage === |
| ''fixed, fixed RotateVector(fixed x, fixed y, fixed cos, fixed sin)'' | ''fixed, fixed RotateVector(fixed x, fixed y, fixed cos, fixed sin)'' |
| |
| A faster version of RotateVector that accepts cos(angle) and sin(angle) instead of computing them. | Более быстрая версия ''RotateVector'', которая принимает косинус и синус угла вращения, вместо того, чтобы вычислять их. |
| |
| ==== RotatePoint ==== | ==== RotatePoint ==== |