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.
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
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.
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.
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.
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é.
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.