TheTalion
@TheTalion

Какой формулой определить где находится персонаж — за другим персонажем, перед, справа-слева и тд.?

В общем, есть персонаж (vector3), точка куда смотрит персонаж(vector3). Угол обзора(int).

Так же есть точка - второй персонаж(vector3). Нужно определить, где находится второй персонаж - за спиной персонажа или перед лицом?

Подскажите куда копать, какие формулы и тд.
  • Вопрос задан
  • 160 просмотров
Решения вопроса 2
  • Griboks
    @Griboks
    Проверить угол между векторами и, если вторая точка попадает в угол обзора, расстояние между точками. Собственно, вот и всё, осталось только вспомнить школьные формулы. Переписывать их сюда я конечно же не буду)
    Ответ написан
  • @Mercury13
    Программист на «си с крестами» и не только
    Считаем, что у нас FPS, т.е. есть некая абсолютная «горизонталь». Обычно в таких играх взгляд хранится через углы (yaw, pitch, roll).
    Взад-вперёд: знак скалярного произведения двух векторов: единичного вектора взгляда без учёта тангажа (cos(yaw), sin(yaw)) и вектора на персонажа (x1−x0, y1−y0).
    Влево-вправо: знак косого произведения той же пары векторов.
    Вверх-вниз: и так понятно.
    Все три в одних единицах, и у кого модуль больше, то и пишем: сверху, справа и т.д. Возможно, придётся сделать скидку на рост персонажей и их диаметр.

    В играх типа Descent нет верха и низа, горизонтали и вертикали. Верх и низ есть только относительно кабины нашего аппарата, а взгляд хранится в виде ортонормированной матрицы, куска этой матрицы или кватерниона.
    1) Скалярное произведение единичного 3D-вектора взгляда (обычно в таких играх хранится напрямую или считается через кватернион поворота) и 3D-вектора на персонажа.
    2) Скалярное произведение единичного вектора, который смотрит вбок (если такой есть), и вектора на персонажа. Либо смешанное произведение единичного вектора взгляда, единичного вектора макушки и вектора на персонажа.
    3) Скалярное произведение единичного вектора макушки и вектора на персонажа.

    Смешанный случай — с переменным вектором гравитации (в глобальных авиасимуляторах или играх на астероидах) — распиши сам.
    Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы