(много картинок) - Тригонометрия и вектор взгляда [проще некуда] [v1.2]

pawsashatoy

Участник
Регистрация
2 Май 2023
Сообщения
4
если честно, тут тоже нифига не понятно, либо я слишком тупой
Сообщение объединено:


а откуда мы этот X берём? это тот-же YAW ?
как я понял - да
В vector2f yaw = x, pitch = y, в векторах нет yaw / pitch, в них используется декартовая позиция
 

astr34

Эксперт
Регистрация
16 Июл 2023
Сообщения
18
В vector2f yaw = x, pitch = y
можно здесь поподробнее?

в векторах нет yaw / pitch, в них используется декартовая позиция
yaw и pitch задают направление луча взгляда в пространстве и измеряются в градусах, а вектор взгляда это "координаты для осей XYZ, на которые нужно сместиться, чтобы пройти единицу расстояния в направлении взгляда".
 
Последнее редактирование:

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
358
я так понял, из этой темы мне потребуются только формулы? по идеи только они мне нужны чтобы уже вектор сделать
 

astr34

Эксперт
Регистрация
16 Июл 2023
Сообщения
18
я так понял, из этой темы мне потребуются только формулы? по идеи только они мне нужны чтобы уже вектор сделать
Для получения вектора да. А если хочешь запускать снаряд, то 5 часть тоже.
 

Nagibator6000LoL

Гость
Регистрация
3 Май 2023
Сообщения
76
Спасибо, я сам смог сделать движение частицы по окружности с помощью этого
 

Nagibator6000LoL

Гость
Регистрация
3 Май 2023
Сообщения
76
расскажи как сделал
я перебираю значения синуса от 1 до -1(по 0.05), когда доходит до -1 оно идет обратно и так по кругу. После выбора синуса по основному тригонометрическому тождеству нахожу косинус и выставляю партикл по координатам косинуса и синуса
 

astr34

Эксперт
Регистрация
16 Июл 2023
Сообщения
18
я перебираю значения синуса от 1 до -1(по 0.05), когда доходит до -1 оно идет обратно и так по кругу. После выбора синуса по основному тригонометрическому тождеству нахожу косинус и выставляю партикл по координатам косинуса и синуса
Но точки спавна частиц не делят окружность на равные дуги, если точек мало, это будет выглядеть криво. Лучше просто перебирать углы сразу в радианах и получать синус и косинус.
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
358
Получаем формулы для нахождения вектора взгляда:
X = -sin(yaw) * R = -sin(yaw) * cos(pitch)
Y = -sin(pitch)
Z = cos(yaw) * R = cos(yaw) * cos(pitch)
тут проблемка появилась, если использовать формулы после первой "=" то если смотреть вниз/вверх будет немного криво лететь луч
тогда я попробовал использовать формулы после равно, НО теперь нахождение Z стало кривым
помогите :c
 

astr34

Эксперт
Регистрация
16 Июл 2023
Сообщения
18
тут проблемка появилась, если использовать формулы после первой "=" то если смотреть вниз/вверх будет немного криво лететь луч
тогда я попробовал использовать формулы после равно, НО теперь нахождение Z стало кривым
помогите :c
в смысле после первого "="? Радиус это же и есть cos(pitch).
 

MakcMakc

Участник
Регистрация
6 Ноя 2023
Сообщения
3
в смысле после первого "="? Радиус это же и есть cos(pitch).
Может я где то потерял суть, у меня cos и sin именно что берется из радиан йав и питч.

Забавная фигня, после извлекания йав и питч из начального местоположения, пришлось прописать (йав+90) и (питч*-1), походу я так и не понял тригонометрию))) точнее зачем питч на -1 множить понятно, что бы убрать инверсию, но почему мне для корректной работы пришлось доворачивать йав...?
 

astr34

Эксперт
Регистрация
16 Июл 2023
Сообщения
18
Может и так, у меня просто +90 и работает
формулы выведены для МЛ-овской системы отсчёта на момент написания, домножать/прибавлять ничего не надо, yaw и pitch могут быть отрицательными, это нормально. Встроенные функции работают с отрицательными значениями.
 
Последнее редактирование:

TimePlay

Новичок
Регистрация
3 Май 2023
Сообщения
90
как сделать чтобы сущность была на 5 блоков дальше от игрока при этом чтобы игрок видел сущность каждый раз когда он поворачивается?
ну типа я думал делать под каждое направление взгляда (EAST, WEST, NORTH, SOUTH) своё добавление (X+5, X-5, z+5, z-5), но funnyq_ не давно делал такое и там игрок куда угодно смотрел, но сущность всегда видна и там правильное расстояние от игрока до сущности
чзх кто знает расскажите секрет этой технологии
 

SashaLab7

Эксперт
Регистрация
3 Май 2023
Сообщения
95
как сделать чтобы сущность была на 5 блоков дальше от игрока при этом чтобы игрок видел сущность каждый раз когда он поворачивается?
ну типа я думал делать под каждое направление взгляда (EAST, WEST, NORTH, SOUTH) своё добавление (X+5, X-5, z+5, z-5), но funnyq_ не давно делал такое и там игрок куда угодно смотрел, но сущность всегда видна и там правильное расстояние от игрока до сущности
чзх кто знает расскажите секрет этой технологии
Ты имеешь в виду смещение по вектору на n блоков?
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
358
Тогда нужно до множить значение каждой координаты на n, в твоём случае n = 5:

X = -sin(yaw) * R = -sin(yaw) * cos(pitch) * n
Y = -sin(pitch) * n
Z = cos(yaw) * R = cos(yaw) * cos(pitch) * n
либо я даун, либо автор, в нахождении Z косинус(питча) должен быть домножен на -1, просто формулы автора у меня не работали
 

SashaLab7

Эксперт
Регистрация
3 Май 2023
Сообщения
95
либо я даун, либо автор, в нахождении Z косинус(питча) должен быть домножен на -1, просто формулы автора у меня не работали
Скорее 1, ты похоже что-то напутал и не ту переменную положил
 
Сверху