Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. // Fonction Factorielle
  2. int fact(int n){
  3. if (n == 0) {
  4. return 1;
  5. }
  6. else {
  7. return n* fact(n - 1);
  8. }
  9. }
  10.  
  11.  
  12. //Calcul polynome Bernstein
  13. float Bernstein(int i, int n, float t){
  14. int factoN = fact(n);
  15. int factoI = fact(i);
  16. int factoNI = fact(n - i);
  17. float rest = pow(t,i) * pow((1 - t), n - i);
  18.  
  19. return ((factoN/(factoI*factoNI))*rest);
  20. }
  21.  
  22.  
  23. void traceCourbeBezier(point2 tabPointControl[], int n) {
  24. float u = 0;
  25. point2 sommeBernstein = point2(0,0);
  26. glBegin(GL_LINE_STRIP);
  27.  
  28. for (int i = 0; i <= 10; i++) {
  29. for (int j = 0; j < n; j++) {
  30. sommeBernstein = sommeBernstein + (tabPointControl[j] * Bernstein(j, n-1, u));
  31. }
  32. glVertex3f(sommeBernstein.x, sommeBernstein.y, 0);
  33. u += 0.1;
  34. sommeBernstein = point2(0, 0);
  35. }
  36.  
  37. glEnd();
  38.  
  39.  
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement