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é:
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];
    }
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
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
Merci de votre aide