La conversion d'une valeur scalaire changeant constamment à un intervalle de changer ou de la fréquence

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

Question

Bien que je codage en Objective C, ce qui est plus d'une question de programmation générale.
Quelle est la meilleure façon de convertir une évolution constante valeur scalaire à un intervalle changeant la fréquence?

En ce moment, chaque fois que la valeur scalaire change Je suis en train de détruire
NSInterval à-dire

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

et créer un nouveau, mais cela semble être un moyen très coûteux pour atteindre mon objectif, puisque le changement de valeur scalaire dans mon cas représente la vitesse horizontale d'un simple glissement.

Pour une analogie grossière, pensez à la vitesse d'un coup qui se reflète dans un métronome visuel, plus vous glissez, plus (intervalle plus court), la fréquence du métronome.

Était-ce utile?

La solution

D'abord, comprendre que cela est un problème « de mesure ». Pour résoudre ce problème, isoler le minimum les qualités nécessaires pour résoudre le problème et d'en tirer le reste.

La distance parcourue et le temps nécessaire pour déplacer la distance sont des attributs dérivés de chaque mesure, dans ce cas, la mesure est nommé « swipe ». Dans une analogie de course, la mesure est appelée un tour. La « vitesse » peut maintenant être calculé. Ce sera la « vitesse », ce qui est tout simplement la distance / temps.

Le distance peut être calculé compte tenu des points de début et de fin du coup. Pour obtenir la valeur de temps, créer une instance de startTime de NSDate dans touchesBegan:withEvents: et touchesEnded:withEvents: calculate elapsedTimeInterval utilisant [startTime timeIntervalSinceNow];

En fonction de vos besoins, vous pouvez avoir besoin d'une classe Measurement propriétés pour startPosition, endPosition, startTime et endTime de sorte que vous pouvez garder une trace de la vitesse, etc. « le plus rapide »

Jetez un oeil à modèles d'analyse par Martin Fowler . Je trouve cela très utile en essayant de cartographier les problèmes de domaine à des solutions logicielles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top