REPRÉSENTATIONS PARAMÉTRIQUES


Équations
Représentations paramétriques
Cubiques
Bases et points de contrôle
Courbes de Bézier
Surfaces de Bézier
Courbes B-splines
Béta-splines
Surfaces B-splines
NURBS

















































Équations


       Équation d´une droite dans le plan

       Équation du cercle dans le plan

       Équation d´une courbe plane

       Surfaces et courbes de l´espace

Équation d´une droite dans le plan

       Soit la droite passant par deux points distincts M1 et M2. La condition nécessaire et suffisante pour que le point M se trouve sur M1M2 est que le vecteur M1M soit collinéaire au vecteur M1M2, c´est à dire que leurs composantes soient proportionnelles:
        (x - x1) / (x2 - x1) = (y - y1) / (y2 - y1)
        (y2 - y1) * x + (x1 - x2) * y + y1 * (x2 - x1) - x1 * (y2 - y1) = 0
        Qui peut s´écrire:

       u * x + v * y + w = 0


équation du premier degré en x et y, appelée équation de la droite. Réciproquement on peut montrer que toute équation du premier degré en x et y représente une droite du plan.
        Si M1M2 n´est pas parallèle à l´axe des y, c´est à dire si x1 != x2, alors l´équation est résoluble en y:

       y = a * x + b


        avec: a = (y2 - y1) / (x2 - x1)
        et b = [y1 * (x2 - x1) - x1 * (y2 - y1)] / (x2 - x1)


Droite M1M2 = {M tels que M1M // M1M2}

Équation du cercle dans le plan

        La condition nécessaire et suffisante pour que le point M(x,y) se trouve sur le cercle de centre O(x0,y0) et de rayon R est que sa distance au point O soit égale à R, ou encore que le carré de cette distance soit égale à R2:
        (x - x0) * (x - x0) + (y - y0) * (y - y0) = R2
        Cette équation, du second degré en y, donne en général deux solutions en y pour une valeur de x, elle n´est donc pas résoluble en y.


Cercle (O,R) = {M tels que OM = R}

Équation d´une courbe plane

        La région du plan dont les points M(x,y) vérifient la relation:
        f(x,y) = 0
        est la courbe plane d´équation f(x,y) = 0.
        Si f est une injection de X dans Y (c´est à dire si, pour tout x appartenant a X, il existe un, et un seul, y tel que f(x,y)=0) alors on peut mettre f sous la forme:
        y = g(x)


                                f injective                                 f non injective
                                                        y1, y2 et y3 sont différentes images du même x

Surfaces et courbes de l´espace

        La région de l´espace dont les points M(x,y) vérifient la relation:
        f(x,y,z) = 0
        est en général une surface.
        Par exemple l´équation linéaire
        u * x + v * y + w * z + h = 0
représente un plan.
        Une seule relation n´est pas suffisante pour déterminer une courbe de l´espace. Par exemple la droite, que l´on peut considérer comme l´intersection de deux plans, sera déterminée par le système de leurs équations:
        u1 * x + v1 * y + w1 * z + h1 = 0
        u2 * x + v2 * y + w2 * z + h2 = 0
        Une équation f(x,y) = 0 n´est pas, en général, résoluble en y, de même, f(x,y,z) = 0 n´est pas résoluble en z; d´autre part une courbe est définie par plusieurs équations, nous chercherons donc une description plus pratique des courbes et des surfaces.

Représentations paramétriques


       Représentation paramétrique d´une courbe

       Représentation paramétrique d´une surface

       Exemples de représentations paramétriques de courbes

       Exemple de représentations paramétriques de surfaces

RP-2-1 Représentation paramétrique d´une courbe

        Le paramètre temps est utilisé en cinématique,qui est l´étude des mouvements: Un point se déplaçant par exemple sur une courbe (C) de l´espace se trouve, à un instant donné t, en un point precis, et un seul, M de (C). Si le temps varie dans un intervalle T = [t1,t2], il existe une injection de T dans (C), c´est à dire qu´il existe une relation:
        M = F(t) associant à tout instant t un point et un seul de (C).
        Dans le cas de l´espace, M est un vecteur (x,y,z) et cette écriture vectorielle donne 3 équations à une dimension:

       x = X(t)
       y = Y(t)
       z = Z(t)


        Ce système est la représentation paramétrique du segment de courbe de (C) correspondant à l´intervalle T du paramètre t.
        Le vecteur tangent V en M(t) est la derivée de M(t) et a pour composantes les derivées des composantes de M(t) (c´est la vitesse du point M sur sa trajectoire (C) si t représente le temps):
        V = dM / dt, soit:
        Vx = dX / dt
        Vy = dY / dt
        Vz = dZ / dt
        On appelle abscisse curviligne la fonction s(t) définie par:
        ds / dt = ||V|| = sqrt(Vx2 + Vy2 + Vz2)
        Elle représente le chemin parcouru sur la courbe entre les instants 0 et t.
        Le vecteur v = dM / ds est unitaire et porté par la tangente. L´extrémité I du vecteur OI équipollent à v décrit une courbe de la sphère unité dont l´abscisse curviligne est w, le vecteur n = dv / dw est tangent à cette courbe et donc à la sphère, donc normal a OI et donc à v, on l´appelle vecteur normal a (C).
        Le vecteur b = vectoriel(v,n) complète un trièdre orthonormé appelé trièdre de Serret-Frénet. Ce trièdre représente intuitivement un repère attaché à un mobile parcourant (C), il est utilisé en synthèse comme repère local d´un solide astreint à suivre une trajectoire en restant tangent (pour une direction de déplacement) et normal (pour une direction verticale) à celle-ci.


Représentation paramétrique d´une surface

        Une représentation paramétrique d´une surface de l´espace comporte toujours deux paramètres u et v;
        Le vecteur M(u,v) a pour composantes:

       x = X(u,v)
       y = Y(u,v)
       z = Z(u,v)


        Intuitivement, soit un plan rapporté à un repère (x,y), supposons que ce plan soit en caoutchouc et qu´on le déforme en une surface gauche (S), les droites parallèles aux axes de ce plan se transforment en courbes "parallèles" constituant une sorte de repère courbe (u,v). Il existe une correspondance biunivoque entre les points M(x,y) du plan, intersection des droites x et y, et les points P(u,v) de (S), intersection des courbes u et v.
        La tangente Tu en P(u,v) à la courbe u est la dérivée partielle de P(u,v) par rapport à u, de même,la tangente Tv en P(u,v) à la courbe v est la dérivée partielle e P(u,v) par rapport à v:
        Tu = dM / du
        Tv = dM / dv
        Ces deux vecteurs sont tangents en M à la surface et déterminent le plan tangent en M à (S).
        Un vecteur normal à ce plan en M est un vecteur normal à (S), par exemple le produit vectoriel de Tu et de Tv:
        N = vectoriel(Tu,Tv)


Tangente à une courbe                 Plan                 Tangentes, plan tangent et
                                                                        normale à une surface

Exemples de représentations paramétriques de courbes

        La représentation paramétrique de la droite M1M2 de l´espace est:
        x = x1 + t * (x2 - x1)
        y = y1 + t * (y2 - y1)
        z = z1 + t * (z2 - z1)
        Remarquons que l´intervalle [0,1] correspond au segment [M1,M2], que les intervalles [-infini, 0[ et ]1,+infini] correspondent à deux demi droites issues de M1 et de M2.




        Le cercle du plan de centre O(x0,y0) et de rayon R a pour représentation paramétrique:
        x = x0 + R * cos(an)
        y = y0 + R * sin(an)
        où an est l´angle (Ox,OM) variant entre 0 et 2 * PI.
        L´ellipse plane de centre O(x0,y0) et de demi axes A et B a pour représentation paramétrique:
        x = x0 + A * cos(an)
        y = y0 + B * sin(an)


Exemple de représentations paramétriques de surfaces

        La représentation paramétrique du cylindre d´axe y, de rayon R et de hauteur h est:
        x = R * cos(an)
        z = R * sin(an)
        y = y
       Les paramètres sont l´angle (Ox,OP), entre 0 et 2 * PI, et la hauteur y du point M


Cubiques


       Problème

       Linéarisation

       Cubiques

       Cubique définie par morceaux

Problème

        Les méthodes précédentes ne permettent de représenter que des courbes et des surfaces définies mathématiquement. En synthèse d´image on est amené à utiliser des géometries arbitraires non nécessairement réductibles à des équations (saisies de trajectoires ou de formes réelles par exemple). Cependant, pour des raisons de finitude (de la mémoire et des temps de calculs), on échantillonne toujours les données. Ainsi une courbe, ou une surface, sera remplacée par un certain nombre de points, appelés points de contrôle. Le problème qui se pose est celui de la génération de la géométrie à partir de cet ensemble discret.

Linéarisation

        Une première méthode consiste à interpoler entre les échantillons. L´inconvenient majeur est d´introduire des discontinuités d´ordres positifs: Si le paramètre est le temps, des discontinuités au niveau des tangentes provoquent des variations brusques des vitesses, et donc des accélérations, ce qui est très sensible en animation. Si les paramètres sont géométriques, des discontinuités de plans tangents aux surfaces provoquent des effets de "facette" lors du rendu.
        La solution consiste à trouver des interpolations générant des variations continues des dérivées successives.

Cubiques

        Soient deux points M0 et M1 et deux vecteurs T0 et T1: Cherchons une courbe (C) passant par M0 et M1 et tangente en M0 à T0, et tangente en M1 à T1. Une représentation paramétrique de cette courbe est:
        M = F(u), soit, dans l´espace:
                x = X(u)
                y = Y(u)
                z = Z(u)
        Notons F´(u) = dF / du le vecteur tangent en u
        Ecrivons que (C) passe par M0 pour u=0: F(0) = M0
        Ecrivons que (C) passe par M1 pour u=1: F(1) = M1
        Ecrivons que (C) est tangente à T0 en M0: F´(0) = T0
        Ecrivons que (C) est tangente à T1 en M1: F´(1) = T1
        Nous avons 4 équations vectorielles en x, y et z, donc 12 équations. Si F(u) est polynômiale le problème admettra une solution s´il y a 12 inconnues, soit 4 inconnues par équation définissant F, F est donc du troisième degré:
                x = a * u3 + b * u2 + c * u + d
                y = e * u3 + f * u2 + g * u + h
                z = i * u3 + j * u2 + k * u + l
        La courbe M = F(u) est une cubique (ou courbe de Hermite).
        Notons M0=(x0,y0,z0); T0=(xt0,yt0,zt0); M1=(x1,y1,z1); T1=(xt1,yt1,zt1);
        La résolution du dystème de 12 équations a 12 inconnues donne les coefficients suivants:
                d=x0;h=y0;l=z0;
                c=xt0;g=yt0;k=zt0;
                a=xt1-2*x1+xt0+2*x0;
                b=3*x1-3*x0-2*xt0-xt1;
                e=yt1-2*y1+yt0+2*y0;
                f=3*y1-3*y0-2*yt0-yt1;
                i=zt1-2*z1+zt0+2*z0;
                j=3*z1-3*z0-2*zt0-zt1;
        Voici quelques exemples: La longueur des tangentes permettent de contrôler la courbure de la cubique.





Cubique définie par morceaux

        Soient n + 1 points de contrôle: M0, M1, ..., Mn. Sur chaque segment [Mi,Mi+1] on peut faire passer une cubique à condition de définir des tangentes aux extrémités. Pour garantir une continuité d´ordre 1 il suffit que les demi tangentes à gauche et à droite en un même sommet soient opposées. Une façon simple de construire ces tangentes est montrée sur la figure suivante:



       Pour tenir compte de la courbure on peut pondérer les longueurs des tangentes par la distance de deux sommets consécutifs.
        Le premier et le dernier segment sont des cas particuliers puisque´il n´existe pas de précédent ou de suivant au point de contrôle. On peut choisir pour tangente le segment correspondant ou faire un calcul tenant compte des deux suivants ou des deux précédents.

Bases et points de contrôle


       Courbes paramétriques

       Surfaces paramétriques

       Propriétés

Courbes paramétriques

        Considerons une courbe paramétrique fonction polynômiale de degré n du paramètre u:
        x(u) = a0 + a1*u + a2*u2 + ... + an*un
        y(u) = b0 + b1*u + b2*u2 + ... + bn*un
        z(u) = c0 + c1*u + c2*u2 + ... + cn*un
        Qui peut s´écrire, sous forme matricielle:

        On sait que, dans le plan, une droite coupe une courbe polynômiale de degré n en au plus n points. La figure suivante montre alors que plus le degré est élevé, plus les variations sont riches.
        Pour n=1 ces courbes se réduisent à des droites (voir RP-2-3).
        Pour n=2 ce sont des coniques.
        Pour n=3 on obtient des cubiques
        Pour n=4 on a des quartiques, etc...



        On voit qu´une conique n´a pas de point d´inflexion et ne permet donc pas les changements de concavité. Ce n´est qu´à partir du troisième degré (qui suffit d´ailleurs pour la plupart des applications) qu´une courbe paramétrique présente assez de variété.
        Une courbe paramétrique est usuellement un polynôme de degré n:
        P(u) = p0 + p1u + p2u2 + ... + pnun
        Par exemple, dans l´espace, P(u) et les coefficients pi sont des vecteurs 3D.
        L´ensemble des polynômes de degrés au moins égaux à n est un espace vectoriel dont une base est:
        {1, u, u2, ..., un}
        Les pi sont les coordonnées du polynôme Q(u) dans cette base, ils sont aussi appelés points de contrôle, car ce sont des points fixes permettant de générer la courbe (lorsque le paramètre u varie).
        Mais il n´existe pas de relation immédiate entre ces coefficients et la forme de la courbe. Aussi a-t-on cherché à écrire de tels polynômes comme combinaisons linéaires de polynômes plus simples ayant une signification géométrique.
        Or il existe une infinite d´autres bases possibles. Pour approcher une courbe par un ensemble de points de contrôle, il faut donc déterminer une base adéquate bi(u) telle que:
        P(u) = p0b0(u) + p1b1(u) + p2b2(u) + ... +pnbn(u)

Surfaces paramétriques

        De la même façon une surface paramétrique polynômiale en (u,v) de degré n et m peut s´écrire:

        Où bi(u) et bj(v) sont deux bases en u et v, et où Pi,j sont (n+1) * (m+1) points de contrôle.
        Pour les mêmes raisons que dans le cas des courbes, on considérera des bases de degrés au moins égaux à 3.

Propriétés

        1) On montre que si les fonctions de base ont pour somme 1:
        b0 + b1 + b2 + ... + bn + = 1
et sont positives ou nulles sur l´intervalle [0,1] de variation de u:
        bi >= 0 pour tout i
        alors la branche de courbe paramétrique correspondant à cet intervalle est située toute entière dans l´enveloppe convexe du polygone formé par les points de contrôle.
        On a une propriété analogue pour les surfaces.



       2) Toute transformation linéaire f (rotations, dilatations, translations en (coordonnées homogènes) vérifie:

        La transformée d´une courbe Q(u) par f peut être générée à partir des transformées des points de contrôle. On a la même propriété pour les surfaces. Remarquons que, la perspective n´étant pas une transformation linéaire, on ne peut pas générer la projection de la courbe à partir des projections de ses points de contrôle.

Courbes de Bézier


       Définition

       Propriétés

       Construction de Casteljau

       Courbes de Bezier définies par morceaux

Définition

        Pierre Bézier a défini les courbes portant son nom en 1972: Une courbe de Bézier de degré n est définie par:

        Les Pi 0<=i<=n étant n+1 points de contrôle et
        Les fonctions de base Bi,n(u) 0<=i<=n étant les polynômes de Bernstein:

Propriétés

        Par exemple 4 points de contrôle définissent une courbe de Bézier de degré 3 dont les fonctions de base sont:
        B0,3(u) = (1 - u)3
        B1,3(u) = 3 * u * (1 - u)2
        B2,3(u) = 3 * u2 * (1 - u)
        B3,3(u) = u3
        On voit que Q(0) = P0 et que Q(1) = P1: La courbe passe par son premier et son dernier point de contrôle.
        On montre que:
        dQ(0) / du = 3 * (P1 - P0)
        dQ(1) / du = 3 * (P3 - P2)
        La courbe est donc tangente à son premier et son dernier segment.
        On peut mettre la courbe de Bezier de degré 3 sous forme matricielle:


        Les fonctions de base ont alors pour expression:
        (B0,B1,B2,B3) = U M
        La figure suivante montre l´influence respectives de ces fonctions lorsque le paramètre u varie de 0 à 1



        Pour u=0.1 par exemple on a:
        P(0.1) = 0.729 * P0 + 0.243 * P1 + 0.027 * P2 + 0.001 * P3. Ce point est donc beaucoup plus proche de P0 que des autres.
        Une courbe de Bézier passe par son premier et son dernier point:
        Q(0) = P0 et Q(1) = Pn
        Elle est tangente en ses extrémités respectivement au premier et au dernier segment:
        Q´(0) = n * (P1 - P0) et
        Q´(1) = n * (Pn - Pn-1) et
        Elle est toute entière à l´intérieur de l´enveloppe convexe de son polygone de base (voir RP-4-3).
        Les courbes de Bézier possèdent un contrôle global: Modifier un seul point de contrôle redéfinit la totalite de la courbe (puisque tous ces points interviennent dans l´expression de Q(u)). Ceci est utilisé pour modéliser interactivement des courbes à partir d´un petit nombre de données, mais le fait que le contrôle soit global est un inconvenient qui sera levé par l´utilisation des B-splines (voir RP-7).

Construction de Casteljau

        L´algorithme de Casteljau génère géométriquement les points de la courbe de Bézier: Pour une valeur u (comprise entre 0 et 1) du paramètre, on partage chacun des n segments joignant les points de contrôle dans le rapport u. On obtient ainsi n-1 points sur lesquels on répète l´operation. Le dernier point obtenu est le point P(u) de la courbe.


Courbes de Bezier définies par morceaux

       La continuité d´ordre 0 (de position) est assurée en faisant coincider le dernier point de contrôle de la première courbe avec le premier point de contrôle de la suivante.
        La continuité d´ordre 1 (de tangence) est assurée en rendant collinéaires le dernier segment de la première courbe avec le premier segment de la suivante.


Continuité d´ordre 0                         Continuité d´ordre 1

Surfaces de Bézier


       Définition

       Propriétés

       Surface de Bézier définie par morceaux

Définition

        Soit un ensemble de points de contrôle:
        P0,0, P1,0, P2,0, ..., Pn,0
        P0,1, P1,1, P2,1, ..., Pn,1
        P0,2, P1,2, P2,2, ..., Pn,2
        ...
        P0,m, P1,m, P2,m, ..., Pn,m
        disposés sur une grille de n*m sommets.
        La surface de Bézier construite à partir de ces points est définie par:


        Les fonctions de base Bi,n(u) et Bj,m(v) sont les polynômes de Bernstein (voir RP-5-1).
        La figure suivante montre un patch cubique (du troisième degré de Bézier construit sur 4*4=16 points de contrôle:


Propriétés

        Remarquons que les courbes limitant un patch de Bézier sont elles-mêmes des courbes de Bézier, propriété qui permettra de connecter plusieurs patchs (voir RP-6-3).
        Les propriétés des surfaces de Bézier sont analogues à celles des courbes de Bézier:
        Elles passent par les 4 coins P0,0, Pn,0, P0,m, Pn,m.
        Elles sont tangentes en ces quatre coins aux plans définis par les deux segments de coin (par exemple [P0,0, P1,0] et [P0,0, P0,1]) en P0,0.
        Elles présentent un contrôle global.
        Q(u,v0), où v0 est constant, est une courbe de la surface, dite courbe en u, la dérivée Tu de Q(u,v0) en u0 est la tangente en Q(u0,v0) à cette courbe et donc tangente à la surface. De même Q(u0,v), où u0 est constant, est une courbe de la surface, dite courbe en v, la dérivée Tv de Q(u0,v) en v0 est la tangente en Q(u0,v0) à cette courbe et donc à la surface. Le produit vectoriel de Tu et de Tv est donc normal à la surface.


Surface de Bézier définie par morceaux

        La continuité d´ordre 0 de deux patchs de Bézier Q et R est assurée en faisant coincider deux frontières de ces patchs:
        R0,0=Q3,0 R0,1=Q3,1 R0,2=Q3,2 R0,3=Q3,3
       La continuité d´ordre 1 est assurée en rendant collinéaires les segments tels que Q2,0, Q3,0 et R1,0



        Une contrainte moins sévère consiste à imposer, non pas la collinéarite, mais seulement la coplanéarité.

Courbes B-splines


       Définition

       Vecteurs des noeuds et points de contrôle

       Insertion de noeuds

Définition

        L´expression d´une courbe de Bézier (voir RP-5-1) fait intervenir tous les points de contrôle, d´où:
        1) Un contrôle global qui rend difficile une mise au point interactive.
        2) Le degré de la courbe augmente avec le nombre de points de contrôle, d´où la nécessite (pour limiter le degré) de concaténer plusieurs branches de courbes.
        Les B-splines font appel à des fonctions de contrôle nulles partout sauf sur un intervalle donc:
        1) Dans cet intervalle, seul un petit nombre de points agissent, d´ou un contrôle local.
        2) La courbe peut être de degré constant (3 suffit pratiquement pour la plupart des applications) quel que soit le nombre de points de contrôle.
        Plus précisément, étant donné un ensemble de n+1 points de contrôle Pi 0<=1<=n, une courbe B-spline est définie par:


        k, qui est l´ordre de continuité de la courbe, s´appelle son ordre. Les fonctions de base Ni,k(u) de degrés k se définissent récursivement par l´algorithme de Cox:


        Avec la convention que 0 / 0 = 0. Ces calculs supposent l´existence un ensemble de valeurs de noeuds ti reliant le paramètre u aux points de contrôle et permettant de modifier localement la forme de la courbe. La spline est non périodique (c´est à dire est une courbe ouverte) si les ti sont tels que:
        ti = 0 si i        ti = i-k+1 si k<=i<=n
        ti = n-k+2 si i>n
        Par exemple (0,0,0,1,2,3,4,4,4) est un vecteur de noeuds correspondant à n=5 (c´est à dire avec 6 points de contrôle) et k=3 (c´est à dire que 3 points de contrôle seulement interviennent dans le calcul d´un point de la courbe). Le paramètre u varie de 0 a n-k+2 = 4.
        Si le vecteur des noeuds n´est pas uniformement espacé, la B-spline est dite non uniforme.
        La figure suivante illustre la forme des fonctions de base Ni,k(u). On voit par exemple que le Point de contrôle P2 influence la forme de la courbe seulement pour 0<=u<=3, puisque c´est l´intervalle dans lequel la fonction B2,3 n´est pas nulle. On voit aussi que 3 fonctions de base ne sont pas nulles pour une valeur donnée de n, donc 3 points de contrôle au plus influencent la forme locale de la courbe.






        Ces fonctions Ni,k(u) ont les propriétés suivantes:
        1) Ni,k(u) >=0 pout tout i,k,u
        2) N0,k + N1,k + N2,k + ... + Nn,k = 1
        La B-spline est donc dans l´enveloppe convexe du polygone de ses points de contrôle (voir RP-4-3).
        3) Le calcul de Ni,k(u) ne fait intervenir que les noeuds de l´intervalle [ti,ti+k] (appelé support de la fonction) ailleurs elle est nulle.
        4) Par convention, dans le calcul de Ni,k(u), on remplace 0/0 par 1.
        Des points particuliers peuvent être obtenus en faisant coincider plusieurs points de contrôle.
        Une spline périodique (c´est à dire une courbe fermée) est définie par le vecteur de noeuds:
        ti = i
et toutes les fonctions de contrôle ayant la forme de N2,3:
        Ni,k = N0,k((u-i+n+1) mod(n+1)) avec 0<=u<=n+1

Vecteurs des noeuds et points de contrôle

        Soient n+1 points de contrôle Pi 0<=i<=n à chacun desquels est associée une fonction de base Ni,k de support [ti,ti+k]. Ainsi N0,k a pour support [t0,tk] et Nn,k a pour support [tn,tn+k]. Il y a donc n+k+1 noeuds formant le vecteur:
        (t0, t1, t2, ..., tn+k)
        Le nombre de noeuds est donc égal au nombre de points de contrôle plus l´ ordre de la courbe.
        Hors de l´intervalle [ti, ti+k], Ni,k(u) est nulle et le point Pi n´a pas d´influence: On dit que le contrôle est local.
        Le vecteur non périodique de noeuds a la forme:
        T = (0, ..., 0, tk, ..., tn, 1, ..., 1)
        ti = 0 si 0<=i<=k-1
        ti = i-k+1 si k<=i<=n-1
        ti = n-k+2 si n<=i<=n+k-1
       

Insertion de noeuds

        Pour insérer un nouveau noeud t´ compris entre tj et tj+1, on réécrit la B-spline avec les nouveaux n+2 points de contrôle P´i:


        Avec P´0 = P0, P´n+1 = Pn et
        P´i = (1-ai) Pi-1 + ai Pi
        ai = 1 pout 1<=i<=j-k
        ai = (t´-ti) / (ti+k - ti) si j-k<=i<=j
        ai = 0 si j+1<=i<=n
        L´algorithme d´oslo permet d´insérer plusieurs noeuds en même temps.
       

Béta-splines

        Les Béta-splines sont une généralisation des B-splines ajoutant deux paramètres de contrôle:
        1) La tension qui modifie la longueur de la tangente(courbe plate pour de grandes valeurs, et pointue pour de petites valeurs).
        2) La torsion qui modifie la pente de la tangente en un point.
        Une Béta-spline est définie par m-2 branches de courbes Ci:


        Les Pi sont m+1 points de contrôle P0, P1, ..., Pm.
        0 <= u <= 1
        2 <= i <= m-1
        Les br(s,t,u) sont des cubiques (voir RP-3). Barsky donne les formules:
        b-2(s,t,u) = (2 s3 / d) (1 - u)3
        b-1(s,t,u) = (1/d) (2s3u(u2 - 3u + 3)
                + 2 s2 (u3 - 3 u2 + 2)
                + 2s (u3 - 3u + 2)
                + t (2u3 - 3u2 + 1))
        b0(s,t,u) = (1/d) (2s2u2(-u+3) + 2su(-u2 + 3)
                + tu2 (-2u + 3) + 2 (-u3 + 1))
        b1(s,t,u) = (2u3) / d
        Avec d = 2s3 + 4s2 + 4s + t + 2
        Les effets des paramètres t et s sont montrés sur la figure suivante:


Surfaces B-splines

        Par une généralisation analogue à celle faite à propos des courbes de Bézier pour définir les surfaces de Bézier (voir RP-6), on définit une surfaces B-spline par une grille de n*m points de contrôle Pi,j et n*m fonctions de base Ni,k et Nj,k:



        Les surfaces B-splines présentent sur les surfaces de Bézier l´avantage d´avoir un contrôle local, d´être continues à l´ordre 2 et d´avoir un degré limité (pratiquement 3). Mais il existe un algorithme efficient de partage récursif des Béziers permettant un affichage rapide. On convertit généralement les B-splines (géométriquement mieux contrôlables) en Béziers (plus facilement affichable) lors d´un rendu final.

NURBS

        Les B-splines non uniformes sont celles pour lesquelles le vecteur de noeuds n´est pas uniformement espacé. Elles ne permettent pas d´approcher des surfaces comme les cylindres ou les sphères.
        Les NURBS (pour Non Uniform Rational B-Spline) le permettent, elles produisent des courbes plus lisses pour des points de contrôle irrégulièrement espacés et, de plus, elles offrent un contrôle supplémentaire (via les poids) sur la forme de la courbe. Les NURBS sont une généralisation des B-splines non rationnelles.
        Plus précisément, soit un ensemble de points de contrôle définis en coordonnées homogènes:
        piw = (wixi, wiyi, wizi, wi)
        La projection perspective de la courbe 4D définie par ces points de contrôle dans l´espace 3D est appelée B-spline rationnelle:






        Une NURBS est donc le rapport de deux polynômes, elle a les mêmes propriétés que les splines. La quatrième coordonnée homogène wi, appelée poids, permet de modifier localement la forme de la courbe sur un intervalle de k noeuds: Si wi augmente la courbe se rapproche du point de contrôle Pi, et si wi diminue, elle s´en éloigne. Si tous les wi valent 1, alors Ri,k = Ni,k, et on retoouve une B-spline non rationnelle.