n = количество кадров (предварительное вращение) g = степень детализации вращения r = фактический угол поворота f = фактический кадр
Я думаю, что эти константы вам нужны и даны.
Первое, что мы хотим сделать, это найти число поворотов, которое потребуется для достижения желаемого угла.В приведенном выше примере угол наклона 45 будет равен 1 повороту.90 градусов = 2 поворота и так далее.Пусть R = количество оборотов.
R = r / g Это всегда должно быть целое число, так как вам никогда не нужен угол, который не соответствует использованным вами чаевым.
Далее мы будемрассчитать начальный индекс этой ротации "группа".В приведенном выше примере первая группа с вращением 0 начинается с индекса 0. 45 градусов или 1 вращение начинается с индекса 3. И так далее.Для этого нам нужно умножить количество поворотов (R) на количество кадров перед вращением (n).Пусть j = начальный индекс этой группы вращения.j = R * n
Последний шаг - выяснить, сколько вы должны добавить к начальному индексу (j), чтобы достичь нужного кадра.Я предполагаю, что первый кадр будет иметь номер 1, как в примере выше, но если первый кадр будет иметь номер 0, тогда уберите -1 в алгоритме.Пусть я = окончательный индекс.i = j + (f - 1)
Я буду индексом, который вы ищете.Чтобы сложить это в один алгоритм, это выглядело бы так:
i = ((r / g) * n) + (f - 1)
Надеюсь, это поможет!Дайте мне знать, если вам нужно, чтобы я что-то прояснил.