This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
ru:functions:math [2016/04/26 18:18] – djskaarj | ru:functions:math [2016/05/04 21:53] (current) – djskaarj | ||
---|---|---|---|
Line 39: | Line 39: | ||
Сравнивает два числа и возвращает результат: | Сравнивает два числа и возвращает результат: | ||
- | * '' | + | * '' |
- | * '' | + | * '' |
- | * '' | + | * '' |
==== dist ==== | ==== dist ==== | ||
Line 55: | Line 55: | ||
dist(3.0, -2.0) == 5.0; | dist(3.0, -2.0) == 5.0; | ||
</ | </ | ||
+ | |||
+ | ==== gcf ==== | ||
+ | '' | ||
+ | |||
+ | Возвращает наибольший общий делитель двух чисел. Возвращённый делитель будет отрицательным, | ||
+ | |||
+ | **Example** | ||
+ | |||
+ | < | ||
+ | gcf(18, | ||
+ | gcf(18.0, 24.0) == 6.0; | ||
+ | gcf(-18, | ||
+ | </ | ||
+ | |||
==== max ==== | ==== max ==== | ||
Line 84: | Line 98: | ||
Возвращает знак числа x. | Возвращает знак числа x. | ||
- | * '' | + | * '' |
- | * '' | + | * '' |
- | * '' | + | * '' |
**Пример** | **Пример** | ||
Line 105: | Line 119: | ||
* round -- округляет до ближайшего целого числа | * round -- округляет до ближайшего целого числа | ||
- | Для каждого вида округления | + | Таблица округления: |
+ | < | ||
+ | | ||
+ | ----- -------- -------- -------- -------- | ||
+ | | ||
+ | | ||
+ | | ||
+ | -2.3 -2 | ||
+ | -3.8 -4 | ||
+ | -5.5 -5 | ||
+ | </ | ||
+ | |||
+ | Для каждого вида округления существует две функции. Те, что начинаются с " | ||
==== ceil ==== | ==== ceil ==== | ||
'' | '' | ||
Line 135: | Line 161: | ||
Возвращает число x без дробной части. | Возвращает число x без дробной части. | ||
- | ===== Numerical algorithms | + | ===== Численные алгоритмы |
==== lerp ==== | ==== lerp ==== | ||
Line 196: | Line 222: | ||
Возвращает arcsin x (арксинус). | Возвращает arcsin x (арксинус). | ||
+ | |||
+ | ==== acos ==== | ||
+ | '' | ||
+ | |||
+ | Возвращает arccos x (арккосинус). | ||
==== atan ==== | ==== atan ==== | ||
Line 206: | Line 237: | ||
Возвращает arcctg x (арккотангнес). | Возвращает arcctg x (арккотангнес). | ||
- | |||
- | ==== acos ==== | ||
- | '' | ||
- | |||
- | Возвращает arccos x (арккосинус). | ||
==== asec ==== | ==== asec ==== | ||
Line 221: | Line 247: | ||
Возвращает arccosec x (арккосеканс). | Возвращает arccosec x (арккосеканс). | ||
+ | |||
+ | ===== Векторы ===== | ||
+ | |||
+ | ==== dot2 ==== | ||
+ | '' | ||
+ | |||
+ | Возвращает скалярное произведение двух векторов. | ||
+ | |||
+ | ==== dot3 ==== | ||
+ | '' | ||
+ | |||
+ | Возвращает скалярное произведение двух трехмерных векторов. | ||
+ | |||
+ | ==== length2d ==== | ||
+ | '' | ||
+ | |||
+ | Возвращает длину заданного двухмерного вектора. Является Zandronum-реализацией функции | ||
+ | [[zdoom> | ||
+ | ==== length2d2 ==== | ||
+ | '' | ||
+ | |||
+ | Возвращает **квадрат** длины данного двухмерного вектора. | ||
+ | |||
+ | ==== length3d ==== | ||
+ | '' | ||
+ | |||
+ | Возвращает длину заданного трехмерного вектора. | ||
+ | |||
+ | ==== length3d2 ==== | ||
+ | '' | ||
+ | |||
+ | Возвращает **квадрат** длины заданного трехмерного вектора. | ||
+ | |||
+ | ==== normalize2d ==== | ||
+ | '' | ||
+ | |||
+ | Нормализует заданный двухмерный вектор. | ||
+ | |||
+ | [[..mulretval|Эта функция возвращает несколько значений.]] | ||
+ | |||
+ | ==== normalize3d ==== | ||
+ | '' | ||
+ | |||
+ | Нормализует заданный трехмерный вектор. | ||
+ | |||
+ | [[..mulretval|Эта функция возвращает несколько значений.]] | ||
+ | |||
+ | ==== RotatePoint ==== | ||
+ | '' | ||
+ | |||
+ | Вращает заданную точку (x; y) вокруг заданной точки вращения на указанный угол и возвращает результирующие координаты точки. | ||
+ | |||
+ | [[..mulretval|Эта функция возвращает несколько значений.]] | ||
+ | |||
+ | ==== RotateVector ==== | ||
+ | '' | ||
+ | |||
+ | Поворачивает вектор на указанный угол и возвращает его новые координаты. | ||
+ | |||
+ | [[..mulretval|Эта функция возвращает несколько значений.]] | ||
+ | |||
+ | **Пример** | ||
+ | |||
+ | < | ||
+ | RotateVector(x, | ||
+ | int newX = r1; | ||
+ | int newY = r2; | ||
+ | </ | ||
+ | |||
+ | ==== VectorToAngles ==== | ||
+ | '' | ||
+ | |||
+ | Конвертирует вектор в пару углов (рысканье и тангаж (поворот и наклон)), | ||
+ | |||
+ | [[..mulretval|Эта функция возвращает несколько значений.]] | ||
+ | |||
+ | **Пример** | ||
+ | |||
+ | < | ||
+ | // Заставляет игрока смотреть по вектору | ||
+ | VectorToAngles(1.0, | ||
+ | int angle = r1; | ||
+ | int pitch = r2; | ||
+ | SetActorAngle(angle); | ||
+ | SetActorPitch(pitch); | ||
+ | </ |