1

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
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

2

c plus simple de faire avec 4points .. si tu veux, j'ai defa fait ca ..

- c long en normal
- plus rapide mais moche avec plein de segements

3

tu veux dire ac bézier ?

4

je veux bien ton algo neurone.

>ué des courbes de bezier
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

5

oué c ca .. bezier ..
c la version plus longue ie: pas de segments
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;}
} 

[edit]Edité par nEUrOne le 06-02-2002 à 20:12:53[/edit]
[edit]Edité par nEUrOne le 06-02-2002 à 20:13:51[/edit]

6

thx neurone!
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay