Существуют ли другие методы, которые не используют функции триггера?Возможно, но нет известных эффективных, общих (то есть для произвольных углов) способов выполнения поворотов без использования функций триггера.
Однако, основываясь на вашем редактировании, вы можете предварительно вычислить sin
и cos
для коллекции интересующих вас углов и сохраните их в справочной таблице.Вам не нужно ограничиваться в таких обстоятельствах π/4
приращениями, но вы можете делать π/256
или π/1024
приращения, если хотите.Кроме того, вам не нужны две таблицы, так как cos(θ) = sin(θ+π/2)
.
Оттуда вы можете использовать любой из нескольких методов интерполяции, чтобы включить простое округление, линейную интерполяцию или некоторую полиномиальную интерполяцию на основе вашегоneeds.
Затем вы будете использовать преобразование на основе матрицы или кватерниона для вычисления повернутого вектора.
Это будет быстрее, чем вычисление sin
и cos
для общих углов, хотяпотребует некоторого дополнительного пространства, а также будет штраф за точность.Но если это удовлетворяет ваши потребности ...