Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 29 мар 2024, 01:30

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Metamod - Полезные функции
СообщениеДобавлено: 19 окт 2012, 23:44 
Не в сети
Аватара пользователя
Зарегистрирован:
24 янв 2011, 03:32
Последнее посещение:
09 дек 2021, 03:04
Сообщения: 756
Откуда: Futurama
Функция приводит углы в диапазон [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 22 окт 2012, 22:13, всего редактировалось 1 раз.

Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Metamod - Полезные функции
СообщениеДобавлено: 21 окт 2012, 14:49 
Не в сети
Аватара пользователя
Зарегистрирован:
24 янв 2011, 03:32
Последнее посещение:
09 дек 2021, 03:04
Сообщения: 756
Откуда: Futurama
Получение "типа" поверхности (битсумма)

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

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"


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB