Half-Life и Adrenaline Gamer форум
http://aghl.ru/forum/

Metamod - Полезные функции
http://aghl.ru/forum/viewtopic.php?f=39&t=985
Страница 1 из 1

Автор:  Turanga_Leela [ 19 окт 2012, 23:44 ]
Заголовок сообщения:  Metamod - Полезные функции

Функция приводит углы в диапазон [0 - 359(+/-)]

Не секрет что полный оборот (вокруг своей оси) равен 360°, однако угол поворота может рассматриваться как исключительно положительное значение где 0 == 360(начальные значения в градусах - либо полный оборот), так и относительно вращения в обратную сторону (с отрицательными значениями). Такое устройство двоякого представления не повлияет на работоспособность данной функции, т.к. к примеру -180° == 180°.

Q - для чего же нужна эта функция ?
A - Для корректировки градусов в тех случаях когда значения градусов явно не несут смысловой нагрузки, к примеру -> {-14567.0, 130.0, 2663.0}. В данном примере результат калькуляции векторов, вне зависимости от этих космических значений :) проекция (к примеру модели) будет отображаться верно. Но даже этот факт не исключает применение данной функции, примером этому могут служить ситуации когда нужно сравнивать градусы либо же производить калькуляцию относительно константных значений(градусов).

Результатом манипуляций с данным в примере вектором, выдаст истинные значения -> {-167.0, 130.0, 143.0}
Код:
void UTIL_AnglesNormalize(Vector & vec_fSource)
{
   vec_fSource[0] = ((vec_fSource[0] - (int)vec_fSource[0]) + ((int)vec_fSource[0] % 360));
   vec_fSource[1] = ((vec_fSource[1] - (int)vec_fSource[1]) + ((int)vec_fSource[1] % 360));
   vec_fSource[2] = ((vec_fSource[2] - (int)vec_fSource[2]) + ((int)vec_fSource[2] % 360));
}

Автор:  Turanga_Leela [ 21 окт 2012, 14:49 ]
Заголовок сообщения:  Re: Metamod - Полезные функции

Получение "типа" поверхности (битсумма)

Любая поверхность игрового мира делится(по типу) на несколько категорий(каждая из которых имеет подтипы):

I)Горизонтальная : I)Пол, II)Потолок(обратка "полу")
II)Вертикальная : I)Ось "X" II)Ось "Y" III)Оси "XY" (Оси "X" и "Y" Имеют свои противоположности, гибридная-же Ось "XY" - не уверен :), но в коде присутствует проверка и на нее :D)
III)Имеющая уклон : I)Ось "X" II)Ось "Y" III)Оси "XY" (+уклоны с противоположными значениями)
 Код
Обновлено: 1)Добавлен флаг - "GROUND_TYPE_REVERSE" (определяет является-ли уклон частью "потолка") 2)Переписано определение флага "GROUND_TYPE_NEGATIVE"

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/