1 2 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