comment fait on FORMELLEMENT pour faire une interpolation entre deux vecteurs
(splines)
je voudrais faire des routines de rendu vectoriel mais qui soient compatibles avec
les formats standards PC
void Spline(int x0,int y0,int x1,int y1,int x2,int y2,int x3,int y3,int n){ unsigned long A1,B1,C1,D1; unsigned long A2,B2,C2,D2; float x,y; float f,fsqr,fcube; float dx,ddx,dddx, dy,ddy,dddy; short i; A1 = (x3 - 3.0 * x2 + 3.0 * x1 - x0); B1 = (3.0 * x2 - 6.0 * x1 + 3.0 * x0); C1 = (3.0 * x1 - 3.0 * x0); D1 = x0; A2 = (y3 - 3.0 * y2 + 3.0 * y1 - y0 ); B2 = (3.0 * y2 - 6.0 * y1 + 3.0 * y0 ); C2 = (3.0 * y1 - 3.0 * y0 ); D2 = y0 ; f = 1.0 / n; fsqr = f * f; fcube = f * fsqr; x = D1 ; dx = A1 * fcube + B1 * fsqr + C1 * f; dddx = 6.0 * A1 * fcube; ddx = dddx + 2.0 * B1 * fsqr; y = D2 ; dy = A2 * fcube + B2 * fsqr + C2 * f; dddy = 6.0 * A2 * fcube; ddy = dddy + 2.0 * B2 * fsqr; for (i=0; i<=n; i++){ DrawPix(x, y, A_NORMAL); x = x + dx; dx = dx + ddx; ddx = ddx + dddx; y = y + dy; dy = dy + ddy; ddy = ddy + dddy;} }