Conversion C / caml
mouton
-
mouton -
mouton -
Bonjour,
je travaille en ce moment sur les courbes de bezier dont je dois rendre un dossier pour la semaine prochaine, mais il me manque certains elements notament en info ou j'aimerai bien traduire certains programme ecrit en C pour les mettre sous la forme de caml
en voici un exemple :
float B (int n, int i, float t)
{
if (i==0) return (pow(1-t),n) ; //pow(x,n) = x^n
return (t/(1-t)(n-i+1)/i*B(n,i-1,t)) ;
}
ou encore :
void Calcul_1 (void)
{
X=0 , Y=0;
float Bz;
for (int i=0 ; i<=n ; i++)
{
Bz=B(n,i,t)
X=X+Bz*P[i].x ;
Y=Y+Bz*P[i].y ;
}
}
mais aussi :
#define DEGRE_MAX 100
typedef stuct
{
float x;
float y;
} point;
int n,nb;
point P[DEGRE_MAX];
float t,pas,X=0,Y=0;
void main (void)
{
input ("Entrez le degré",&n);
saisie_points_initialise (&P);
input ("Entrez le nombre de points pour le tracé",&nb);
putpixel (P[0].x,P[0].y);
for (t=pas=(float)(1/nb) ; t<=1 ; t+=pas)
{
Calcul_1();
lineto (X,Y); // ou putpixel (X,Y); sans joindre les points
}
}
quelqu'un pourrait-il m'aider?? j'aurais besoin d'une reponse relativement rapide s'il vous plait...
merci d'avance
je travaille en ce moment sur les courbes de bezier dont je dois rendre un dossier pour la semaine prochaine, mais il me manque certains elements notament en info ou j'aimerai bien traduire certains programme ecrit en C pour les mettre sous la forme de caml
en voici un exemple :
float B (int n, int i, float t)
{
if (i==0) return (pow(1-t),n) ; //pow(x,n) = x^n
return (t/(1-t)(n-i+1)/i*B(n,i-1,t)) ;
}
ou encore :
void Calcul_1 (void)
{
X=0 , Y=0;
float Bz;
for (int i=0 ; i<=n ; i++)
{
Bz=B(n,i,t)
X=X+Bz*P[i].x ;
Y=Y+Bz*P[i].y ;
}
}
mais aussi :
#define DEGRE_MAX 100
typedef stuct
{
float x;
float y;
} point;
int n,nb;
point P[DEGRE_MAX];
float t,pas,X=0,Y=0;
void main (void)
{
input ("Entrez le degré",&n);
saisie_points_initialise (&P);
input ("Entrez le nombre de points pour le tracé",&nb);
putpixel (P[0].x,P[0].y);
for (t=pas=(float)(1/nb) ; t<=1 ; t+=pas)
{
Calcul_1();
lineto (X,Y); // ou putpixel (X,Y); sans joindre les points
}
}
quelqu'un pourrait-il m'aider?? j'aurais besoin d'une reponse relativement rapide s'il vous plait...
merci d'avance
A voir également:
- Conversion C / caml
- Logiciel gratuit conversion calendrier républicain - Télécharger - Études & Formations
- 2k€ conversion ✓ - Forum Bureautique
- Conversion bytes en mo ✓ - Forum Webmastering
- Conversion mb en mo ✓ - Forum Bureautique
- Combien de Bytes pour 1Mo ? ✓ - Forum Programmation
4 réponses
salut
heu...
j'ai pas tout compris mais j'crois que c'est juste pour melanger et pas pour traduire integralement si?
heu...
j'ai pas tout compris mais j'crois que c'est juste pour melanger et pas pour traduire integralement si?
Pour le premier ça donnerait ça :
Or en Caml le typage est primordial !!!
Corrige donc tes programmes en C avant de faire une traduction en Caml...
let rec B n i t = if i=0 then (1.0-.t)**(float_of_int n) else t/.(1.0-.t)*.float_of_int(n-i+1)/.float_of_int(i)*.B(n,i-1,t);;Pour les suivant, le code C est faux, il manque des informations (de déclaration ou de type) pour X, Y, n, i, t, et P.
Or en Caml le typage est primordial !!!
Corrige donc tes programmes en C avant de faire une traduction en Caml...