Тогда
Цитата:
Сообщение от SamFR
Можно (и даже лучше) взять не такую формулу, а что-то типа вашОбъект.rotation = angle0 + (angle1 – angle0)*t/T, где angle0 – начальный угол поворота в радианах, angle1 – конечный угол поворота в радианах, t = getTimer() – t0 задаёт текущее время.
|
Или проблема в том, как узнать, сколько раз нужно прокрутить объект между
angle0 и
angle1 (если принять, что оба угла лежат между
0 и
2*PI)? Здесь однозначного решения нет.
Можно смотреть, сколько раз
object.rotation перешёл значения
PI/2 и
-PI/2, и в какой последовательности. И на основе этого предполагать, сколько было сделано полных оборотов.
Либо изначально количество оборотов задавать не вращением объекта, а, например, перетягиванием ползунка (вводом числа). Тут уж всё зависит от специфики.
Но, как мне кажется, общая схема, если не получается точно определить количество оборотов, такова: узнали
angle0 (
object.rotation перед началом вращения объекта пользователем) и
angle1 (
object.rotation в конце вращения объекта пользователем), а также
[N], то есть количество полных оборотов. Далее к
angle0 и
angle1 прибавили (вычли) период (то есть
2*PI) столько раз, чтобы оба угла лежали на полуотрезке
[0; 2*PI). Далее к
angle1 прибавали количество полных оборотов, умноженное на
2*PI (то есть
angle1 += [N]*2*PI). Далее вращаем.