| 12
 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
 
 |  
#include "Point.h"
#include "Bezier3.h"
#include "Bernstein.h"
 
double bez3::x(double t)
{ return (tab[0].getX0()*B03(t)+tab[1].getX0()*B13(t)+tab[2].getX0()*B23(t)+tab[3].getX0()*B33(t) );
}
 
double bez3::y(double t)
{ return (tab[0].getY0()*B03(t)+tab[1].getY0()*B13(t)+tab[2].getY0()*B23(t)+tab[3].getY0()*B33(t) );
}
 
 
void bez3::openGL(int nb)
{ for (int t=0;t<nb;t++)
  { Point M0,M1;
    double t0=double (t) / double (nb);
    M0.setX0(x(t0));
    M0.setY0(y(t0));
    t0=(double (t + 1)) / double (nb);
    M1.setX0(x(t0));
    M1.setY0(y(t0));
    M0.trace_segment(M1); //cout<<"M0 : "<<M0<<" t0 = "<<t0<<" et M1 :"<<M1<<endl;
  } 
  tab[0].trace_segment(tab[1],(1.0-tab[0].getR())/2.0,(1.0-tab[0].getG())/2.0,(1.0-tab[0].getB())/2.0, tab[0].getS()/3.0);
  tab[1].trace_segment(tab[2],(1.0-tab[1].getR())/2.0,(1.0-tab[1].getG())/2.0,(1.0-tab[1].getB())/2.0, tab[1].getS()/3.0);
  tab[3].trace_segment(tab[2],(1.0-tab[2].getR())/2.0,(1.0-tab[2].getG())/2.0,(1.0-tab[2].getB())/2.0, tab[2].getS()/3.0);
  tab[0].openGL();tab[1].openGL();tab[2].openGL();tab[3].openGL();
} | 
Partager