Bonjour,
Le titre est compliqué, mais ce que je cherche à faire est simple. Je cherche à utiliser une classe pour traiter des données provenant d'un capteur de type Kinect : je reçois, pour simplifier, un flux de floats, et je cherche à faire la moyenne de ces données par paquets de 3.
Le code qui m'est venu à l'esprit est le suivant :
L'idée est d'utiliser la fonction MathTools.moyenne(valeur) pour renvoyer un calcul de la moyenne de mon flux de données tous les 3 chiffres qui lui parviennent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public class MathTools { private static float moy = 0f; private static float calc = 0f; private static int indice = 0; public MathTools() { } public static float moyenne(float valeur) { indice++; calc += valeur; if (indice == 3) { moy = calc/3.0; ind = 0; calc = 0f; } return moy; } }
1 --> MathTools.moyenne(1) = 0
2 --> MathTools.moyenne(2) = 0
3 --> MathTools.moyenne(3) = (1 + 2 + 3)/3 = 2
4 --> MathTools.moyenne(4) = 2
5 --> MathTools.moyenne(5) = 2
6 --> MathTools.moyenne(6) = (4 + 5 + 6)/3 = 5
7 --> MathTools.moyenne(7) = 5
8 --> MathTools.moyenne(8) = 5
9 --> MathTools.moyenne(9) = (7 + 8 + 9)/3 = 8
etc.
La fonction est correcte et fonctionne, mais le problème que je rencontre est le suivant : comme ma fonction est statique, je ne peux PAS l'utiliser plusieurs fois pour plusieurs flux de valeurs. Puisque les variables sont les identiques (static), deux versions de cette fonction vont interagir et le résultat sera faussé.
La seconde idée qui m'est venue est d'utiliser une fonction et des variables NON statiques, mais dans ce cas, je doit définir autant d'instances de cette classe qu'il y a de fonction moyenne(), ce qui n'est vraiment pas pratique !!! J'aurais voulu utiliser des fonctions comme celles de la classe java.lang.Math par exemple (elles sont toutes statiques). La différence entre ces fonctions et la mienne est que je suis obligé (sauf erreur de ma part) d'utiliser des variables extérieures à ma fonction pour faire le calcul (indice, calc, moy).
Auriez-vous une idée pour faire ce genre de calcul dans une classe ? J'avoue que je sèche un peu...
Cordialement,
RP.
Partager