Bonjour,
Dernière ligne droite pour corriger erreurs de code et bugs.
Je vais détailler au maximum pour éviter toutes confusions en prenant un exemple concret.
TWAm correspond une moyenne de twa et est calculée avec cette fonction ( merci danielhagnoul)
Code JS : 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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 function twamCalc() { const twaData = [-28, -38]; Math.radians = function (degrees) { return degrees * Math.PI / 180.0; }, Math.degrees = function (radians) { return radians * 180.0 / Math.PI; }; let arX = [], arY = [], somX = 0.0, somY = 0.0, moyX = 0.0, moyY = 0.0, twam = 0.0; for (const [i, angle] of twaData.entries()) { arX[i] = Math.cos(Math.radians(angle)); arY[i] = Math.sin(Math.radians(angle)); } for (const value of arX) { somX += value; } moyX = somX / arX.length; for (const value of arY) { somY += value; } moyY = somY / arY.length; twam = Math.round((Math.degrees(Math.atan2(moyY, moyX)) * 10)) / 10; return twam + " pour twaData: " + twaData; } console.log(twamCalc()); // -33 pour twaData: -28, -38
Dans mon 'cahier des charges' 3 choses :
- Obtenir une valeur pour twam pour chaque ttw listés.
- Le calcul des valeurs twam ( pour ce cas ) doit se limiter aux valeurs négatives puis reprendre pour les valeurs positives (et vice versa tout dépend de la valeur initiale de T+ 0:00)
- le calcul des valeurs twam doit prendre en compte les valeurs twa des itérations de 10min ( ttw ) non listés.
twaData pour le tableau ci dessus peut être créé avec :
Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var twaData = []; // tableau vide twaData.push(twa); console.log(twaData); // [-45, -45, -50, -45, 50, 35, 45]
Si les itérations de 10 min sont prises en compte je dois obtenir:
Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 //T+ 0:00, T+ 0:10, T+ 0:20, T+ 0:30, T+ 0:40, T+ 0:50, T+ 1:00, T+ 1:10, T+ 1:20, T+ 1:30, T+ 1:40, T+ 1:50, T+ 2:00 -45, -45, -45, -45, -50, -50, -45, 50, 50, 35, 35, 35, 45
Si j'ajoute la condition que je me limite aux valeurs négatives ( pour la première partie puisqu'il y a des valeurs positives après ) je dois obtenir:
Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 //T+ 0:00, T+ 0:10, T+ 0:20, T+ 0:30, T+ 0:40, T+ 0:50, T+ 1:00 -45, -45, -45, -45, -50, -50, -45
Si je souhaite obtenir une valeur twam pour chaque itération du tableau, twaData doit correspondre pour chaque ttw listé : ( résultat obtenu avec twamCalc() )
Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 - // T+ 0:00 je ne peux pas obtenir une valeur ici car je suis déjà sur ce point -45 // T+ 0:10 twaData = [-45, -45] -45 // T+0:40 twaData = [-45, -45, -45, -45] -46,7// T+ 1:00 twaData = [-45, -45, -45, -45, -50, -50] -46,4// T + 1:10 twaData = [-45, -45, -45, -45, -50, -50, -45] ########################################################## #Le calcul stop et recommence pour les valeurs positives # ########################################################## 50// T+ 1:30 twaData = [50, 50] 41// T+ 2:00 twaData = [50, 50, 35, 35, 35]
soit
Ma problématique pour la mise en oeuvre est la suivante:
Ai je raison de vouloir obtenir le résultat final, détaillé ici, via une boucle ?
Pour celui ou ceux qui me répondront ( j'espère ) n'hésitez pas à détailler vos conseils ou bouts de code, je souhaite également comprendre la démarche ça fait quelques soirs voir plus que je mets mes neurones en ébullitions alors autant que la méthode pour obtenir ce que je souhaite rentre et soit comprise
Merci d'avance
Cdlt
PS: J'oubliais ... je suis ce qu'on appelle un noob ...
Partager