Bonjour a tous, voici ma structure:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CourbeBezierPtr CourbeBezierConstructeur (int Dimension, int Degre)
{
	CourbeBezierPtr CBPtr;
	CBPtr = (CourbeBezierPtr)malloc(sizeof(CourbeBezier));
	CBPtr->Dimension=Dimension;
	CBPtr->Degre=Degre;
	CBPtr->Ordre=Degre+1;
	int i;
	for (i=0; i<Dimension; i++)
	{
		CBPtr->Poles[i] = VecteurConstructeur(CBPtr->Ordre);
	}
	return CBPtr;
}
Et la methode a l'interieur de laquelle elle est utilisee:

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
CourbeBezierPtr ConstruitCourbe (int Dimension, int NbPoints, int Degre, VecteurPtr Points[])
{
	if (NbPoints==Degre+1)
	{
		CourbeBezierPtr C = CourbeBezierConstructeur(Dimension, Degre);
		printf("C->Degre=%d",C->Degre);
		MatricePtr M = MatriceConstructeur(NbPoints,C->Ordre);
		double* A = ConstruitParametres(Dimension, NbPoints, Points);
		int i,j,k;
		for (i=0; i<NbPoints; i++)
		{
			for (j=0; j<(C->Ordre); j++)
			{
				printf("A[%d]=%f, C->Degre=%d, j=%d\n",i,A[i],C->Degre,j);
				M->Coef2d[i][j] = EvalueBernstein(C->Degre, j, A[i]);
			}
		}
//...
Enfin, la ligne du main:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
CourbeBezierPtr C2 = ConstruitCourbe(3,3,2,Points);
Resultat:

C->Degre vaut 0 !!!!!!!?????

Ca fait toute la matinee que je planche dessus et personne pour m'aider dans mon entourage! Par pitie, si vous avez une idee... :'(

Merci d'avance