Conversion C / caml

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

4 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Un petit tutoriel pour t'aider : Appel de commandes C/C++ dans OCaml
0
mouton
 
salut
heu...
j'ai pas tout compris mais j'crois que c'est juste pour melanger et pas pour traduire integralement si?
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Effectivement, mais pour traduire intégralement la seule méthode qui existe c'est de connaitre les 2 langages, moi je les connais à peu près et je veux bien t'en traduire un peu pour te montrer la voie, mais je ne vais pas tout te recoder surtout si tu as beaucoup de code...
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Pour le premier ça donnerait ça :
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...
0
mouton
 
merci beaucoup!!
je vais essayer alors de corriger le C
0