Преобразование постоянно меняющегося скалярного значения на изменяющийся интервал или частоту

StackOverflow https://stackoverflow.com/questions/3019713

Вопрос

Хотя я кодирую в цели C, это больше вопроса общего программирования.
Какой лучший способ преобразовать постоянно меняющееся скалярное значение на изменяющийся интервал или частоту?

Прямо сейчас каждый раз, когда скалярные изменения значения, я уничтожаю Nsinterval
т.е.

   [self.myTimer invalidate];
    self.myTimer = nil;

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

Для грубой аналогии, подумайте о скорости промедления, отраженной в визуальном метрономе, тем быстрее вы проводили, тем выше (более короткий интервал) частота метроном.

Это было полезно?

Решение

Во-первых, поймите, что это проблема «измерения». Чтобы решить эту проблему, изолируйте минимальные атрибуты, необходимые для решения проблемы и вытекают остальные.

Перемещенное расстояние и время, необходимое для перемещения расстояния, являются полученными атрибутами каждого измерения, в этом случае измерение называется «Swipe». В гоночной аналогии измерение называется кругом. «Скорость» теперь может быть рассчитана. Это будет «скорость», которая просто расстояние / время.

То distance Может быть рассчитан с учетом начальных и конечных точек промедления. Чтобы получить значение времени, создайте startTime случай NSDate в touchesBegan:withEvents: И в touchesEnded:withEvents: рассчитать elapsedTimeInterval с использованием [startTime timeIntervalSinceNow];

В зависимости от ваших потребностей, вам может понадобиться Measurement Класс со свойствами для StartPosition, AndPosition, Starttime и EndTime, чтобы вы могли отслеживать «быструю» скорость и т. Д.

Взгляни на Шаблоны анализа по Мартин Фаулен. Отказ Я считаю это очень полезным при попытке отображения проблем доменных программных решений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top