На такие вопросы отвечает профилирование приложений загугли посмотри на ютубе.
но setInterval(rotateFigure,1) - не лучшее решение для анимации.
и ужасно много ненужных и часто повторяющихся вычислений.
К примеру функция центр в которой много вычислений цикл по вершинам вызывается много раз за одну анимацию в этом нет никакой необходимости т.к. фигура не двигается и ее центр не изменяется.
Еще любопытный факт что если сдвинуть фигуру на 100 пикселей вправо то и ее центр также сдвинется вправо на 100 пикселей и совсем не обязательно пересчитывать все вершины и искать их центр.
Такие вычисления происходят на каждой отрисовке кадра и для каждой фигуры.
Тригонометрические функции так же не лучший подход для вычислений вращения фигуры. Обычно в анимации используют комплексные числа матрицу поворота для простых вращений ну или же матрицу трансформации для более сложных фращений перемещений или масштабирования.
Просто работа с комплексными числами сводится к простым арифметическим операциям над матрицами что для компьютера гораздо проще чем расчеты тригонометрических функций.
Приведенный код простой и не должен притормаживать даже на слабых устройствах вроде телефонов.
Проблема в том что анимации не выглядит плавной =). а это уже отдельная тема
|