Bonjour,
Je fais appel à vous aujourd'hui car j'ai un problème peu banal. J'ai une variable tableau (segments) qui contient un certain nombre de valeur double. Je l'utilise dans mon code et plus bas il vaut autre chose!!! Qu'est-ce qui se passe? Je vous met le code (pas tout ce serait trop long) incriminé:
En sortie:
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 double segments[nbSegments]; for (int i=0;i<nbSegments;i++) { segments[i]= pow(pow(coordonnees[(i+1)*3+0]-coordonnees[i*3+0],2)+pow(coordonnees[(i+1)*3+1]-coordonnees[i*3+1],2)+pow(coordonnees[(i+1)*3+2]-coordonnees[i*3+2],2),0.5); //pow = fonction puissance qDebug()<<segments[i]; } double centresGravite[(nbSegments+nbBuoyancy+2)*4]; for (int i=0;i<nbSegments;i++) { for (int j=0; j<3; j++) { centresGravite[i*4+j]=(coordonnees[(i+1)*3+j]+coordonnees[i*3+j])/2 ; } centresGravite[i*4+3]=M_PI*(pow(p_dExterieur/2,2)-pow((p_dExterieur-2*p_epaisseur)/2,2))*segments[i]*p_masseVolumique +M_PI*(pow((p_dExterieur+2*p_epaisseurCoatingExt)/2,2)-pow(p_dExterieur/2,2))*segments[i]*p_rhoCoatingExt +M_PI*(pow((p_dExterieur-2*p_epaisseur)/2,2)-pow((p_dExterieur-2*p_epaisseur-2*p_epaisseurCoatingInt)/2,2))*segments[i]*p_rhoCoatingInt; masseTot = masseTot + centresGravite[i*4+3]; } for(int i=0;i<nbBuoyancy;i++) { for (int j=0; j<3; j++) { centresGravite[(nbSegments+i)*4+j] = ui->tableWidget_3->item(i,j)->text().toDouble(); } if(ui->tableWidget_3->item(i,3)->text().toDouble()==1) { centresGravite[(nbSegments+i)*4+3] = p_weightInAir1; } else { centresGravite[(nbSegments+i)*4+3] = p_weightInAir2; } masseTot = masseTot + centresGravite[(nbSegments+i)*4+3]; } centresGravite[(nbSegments+nbBuoyancy+1)*4+0]= coordonnees[0+0]; centresGravite[(nbSegments+nbBuoyancy+1)*4+1]= coordonnees[0+1]; centresGravite[(nbSegments+nbBuoyancy+1)*4+2]= coordonnees[0+2]; centresGravite[(nbSegments+nbBuoyancy+1)*4+3]= p_connectorWeight; centresGravite[(nbSegments+nbBuoyancy+2)*4+0]= coordonnees[(nbPoints-1)*3+0]; centresGravite[(nbSegments+nbBuoyancy+2)*4+1]= coordonnees[(nbPoints-1)*3+1]; centresGravite[(nbSegments+nbBuoyancy+2)*4+2]= coordonnees[(nbPoints-1)*3+2]; centresGravite[(nbSegments+nbBuoyancy+2)*4+3]= p_connectorWeight; masseTot = masseTot + p_connectorWeight*2; CoG[0*3+0] = 0; CoG[0*3+1] = 0; CoG[0*3+2] = 0; for(int i=0; i<nbPoints+nbBuoyancy+2;i++) { CoG[0] = CoG[0] + centresGravite[i*4+3]*centresGravite[i*4+0]; CoG[1] = CoG[1] + centresGravite[i*4+3]*centresGravite[i*4+1]; CoG[2] = CoG[2] + centresGravite[i*4+3]*centresGravite[i*4+2]; } CoG[0] = CoG[0]/masseTot; CoG[1] = CoG[1]/masseTot; CoG[2] = CoG[2]/masseTot; for(int i=0;i<nbPoints+nbBuoyancy+2;i++) { centresGravite[i]=0; } qDebug()<<"---------"; for (int i=0;i<nbSegments;i++) { qDebug()<<segments[i]; }
Merci de votre aide
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
21 5 5 16.5 5 3.5 6 2.091 20.034 3.6 25.2247 --------- 3.6 3540 16.5 5 3.5 6 2.091 20.034 3.6 25.2247
Partager