аналоговые миллисекунды для часов в iphone - PullRequest
0 голосов
/ 17 ноября 2011

Я на самом деле пытаюсь сделать аналоговое приложение для секундомера для iOS. Кто-нибудь знает, как правильно использовать аналоговые часы с миллисекундной стрелкой.Моя проблема в том, что базовая графика iOS SDK не поддерживает такую ​​высокую частоту обновления, чтобы обновлять движение стрелки в миллисекундах.Может ли кто-нибудь помочь с OpenGL-ES, так как у меня очень мало опыта работы с OpenGL, поэтому просто нужно несколько советов для быстрого старта.

1 Ответ

0 голосов
/ 17 ноября 2011

Предполагая, что вы знаете, что не получите тот же результат от ваших часов TAG Heuer (из-за частоты обновления), вы должны интерполировать время в соответствии с вашими потребностями.

Чтобы упростить ситуацию, я попытаюсь продемонстрировать указатель, который делает один круг каждую секунду.

  • Шаг 1: получите истекшее время (при условии, что каждая единица составляет 1/100 секунды). Пример значения: 234 (в нашем масштабе 2,34 секунды).
  • Шаг 2: Сократите его до истекшего времени в пределах вашего таймфрейма. (если вы измеряете 1/100 секунды, вы уже использовали 200 для 2 полных кругов, вам нужно только получить его). В нашем случае: 34. Как получить? В С: 234 % 100 = 34.
  • Шаг 3: Поверните свои координаты соответственно: в чистом OpenGL: glRotatef (((float)34/100)*360, 0, 1, 0); (вращается вокруг оси Y. OpenGL использует градусы, поэтому полный круг = 360).
  • Шаг 4: Нарисуйте указатель
  • Шаг 5. Начните все сначала (поскольку вы снова извлекаете время на шаге 1, вы перерисовываете указатель на новом месте).

Помните, что это всего лишь фаза "рисования", а шаг 5 является лишь следствием вашего цикла выполнения и проиллюстрирован только для пояснения.

Надеюсь, это поможет вам начать. Если вам нужно больше подробностей, просто прокомментируйте ответ, и я постараюсь вам помочь!

...