В настоящее время я работаю над игровым проектом и мне нужно отрендерить точку перед видением текущего игрока, игра написана на пользовательском движке C ++. У меня есть текущая позиция (x, y, z) и текущее вращение (тангаж, рыскание, крен). Мне нужно продлить точку вперед под известным углом на заданное расстояние.
edit: То, что я использовал в качестве решения (немного не так, но для меня это нормально)
Vec3 LocalPos = {0,0,0};
Vec3 CurrentLocalAngle = {0,0,0};
float len = 0.1f;
float pitch = CurrentLocalAngle.x * (M_PI / 180);
float yaw = CurrentLocalAngle.y * (M_PI / 180);
float sp = sinf(pitch);
float cp = cosf(pitch);
float sy = sinf(yaw);
float cy = cosf(yaw);
Vec3 dir = { cp * cy, cp * sy, -sp };
LocalPos = { LocalPos.x + dir.x * len, LocalPos.y + dir.y * len,LocalPos.z + dir.z * len };