Я анимирую короткую линию вокруг круга таким образом, чтобы он всегда указывал «вперед» вдоль касательной к точке круга, в которой он находится.Я использую (n Android) ValueAnimator, чтобы сделать это, передавая массив углов, рассчитанный с atan2 к нему.
В районе 180 градусов значение atan2 возвращает сальто от положительного к отрицательному.Так, например, угол в одной точке равен 178, а в следующей - -177.
Хотя это (очевидно) не так, и фактически аниматор продолжает ориентировать мою линию так, как я хочу впоследствии.На переходе моя линия поворачивается на 360 градусов вокруг своего центра.Я не хочу, чтобы это делалось.
Очень урезанная версия того, что я использую:
for (int i = 0; i < noOfSamples; ++i) {
pAngles[i] = Math.toDegrees(Math.atan2(pPointsY[i],
pPointsX[i]));
}
Это компилируется и работает правильно, за исключением этой проблемы.поднимать здесь.Все периферийные проблемы (типы, система координат, направление по кругу) в этом примере были проигнорированы.
Хотя я могу предварительно обработать массив для хранения значений, которые я хочу, это кажется неправильным (т.е.слишком брутальное) решение.Мне не хватает чего-то более элегантного?