Vous êtes sur la page 1sur 91

Courbes & Surfaces Paramétriques

Paramétrique / Implicite
Courbes Paramétriques (Splines)
Surfaces Paramétriques
Subdivision

Christian Gentil - Marc Neveu – LIB – Université de Bourgogne


2 façons de définir un cercle

Paramétrique Implicite

F>0
F=0
u
F<0

x u =r.cos u 
{ y u= r.sinu 
2 2
F  x , y = x  y −r
2
Représentations d'une courbe (2D)
Explicite : y = y(x)
y=mx+b y=x2
doit être une fonction (x->y) : limitation importante

Paramétrique : (x,y)=x(u),y(u))
(x,y) = (cos u, sin u)
+ facile à spécifier
- variable additionelle cachée u : le paramètre

Implicite : f(x,y) = 0
x2+y2-r2=0
+ y peut être une fonction multivaluée de x
- difficile à spécifier, modifier, contrôler
courbes 3
Représentations des courbes et surfaces (3D)

• Représentation Implicite x2+y2+z2-1=0


• Courbes : f(x,y,z) = 0 et g(x,y,z) =0 x-y=0
• Surfaces : f(x,y,z) =0

• Représentation Paramétrique
• Courbes : x = f(t), y = g(t), z = h(t)
• Surfaces : x = f(u,v), y = g(u,v), z = h(u,v)
• Courbe Cubique :
• x= axt3 + bxt2 + cxt + dx
• y = ayt3 + byt2 + cyt + dy
• z = azt3 + bzt2 + czt + dz

courbes 4
x t = x 0 R.cos  2  . t 

{ y t = y 0  R.sin 2  . t 
z t = z 0 p.t
Helicoide :
u∈ℝ , v ∈ℝ
x= v.cos u
Hélice passant par (x0,y0,z0), rayon R, pas p {y= v.sinu 
z=u
Représentation des Surfaces
Surface Paramétrique – (x(u,v),y(u,v),z(u,v))
Ex : plan, sphère, cylindre, tore, surface bicubique, surface de balayage
Les fonctions paramétriques permettent de se déplacer sur la surface en faisant varier u et v
(ex en boucles imbriquée)
Pratique pour maillages polygonaux, etc
Terrible pour les intersections (rayon/surface), intériorité, appartenance, etc
Surface Implicite F(x,y,z)=0
Ex : plan, sphère, cylindre, tore, blobs
Terrible pour la visualisation
Pratique pour les intersections, le morphing
Surface de Subdivision
Définie par un maillage de contrôle et une subdivision récursive
Pratique pour la conception interactive
Visualisation des Courbes Paramétriques


Evaluation des fonctions x(t), y(t), z(t)

Par échantillnage de l’espace des paramètres

Paramétrisation d'une courbe: nombre de solutions
infini

Paramètre = vitesse de parcours de la courbe

avec vitesse (non-) constante,

(dis-)continue,

par longueur d'arc,...
Courbes Paramétriques : résumé


Pourquoi des polynomiales par morceaux,
pourquoi des cubiques ?

Principales courbes :

Splines de Hermite , splines de Bezier , splines
de Catmull-Rom ,splines naturelles cubiques ,
B-Splines, NURBS
Et extension aux surfaces
Construction de Courbes
Représenter <> construire
Buts pour construire des courbes :
Courbe lisse, “élastique”
Utilise des points de contrôle => et coordonées barycentriques
Comme les architectes de marine :
Poids ou joints pour maintenir une latte flexible (spline)
la latte passe par les joints et a une forme “lisse”
Mathématiquement ?
2 types de courbes

Interpolation Approximation

la courbe passe par la courbe approche


les points de contrôle les points de contrôle
Avant de démarrer...

Quelques rappels mathématiques....


Soit E3 l'espace Euclidien
Courbe paramétrique :

ex : 2 n
Q (t )=[ x (t ) , y (t ) , z (t )]=Q 0 + Q 1 t +Q 2 t + ...+Q n t
Q (t )=Q 0 +Q 1 t
combinaison barycentrique BC de E3 : point de E3 /
n

{ BC =∑ α i Pi


n

i =0
i=0

α i =1

combinaison convexe BC /
 i ≥0 ∀ i
Coordonnées Barycentriques

p=u a v b w c
area  p , b , c area  a , p , c  area  a , b , p
uv w =1 u= v= w=
area  a , b , c area  a , b , c area  a , b , c
b

∣ ∣
ax bx cc
1
area  a , b , c = ay by cy
2
1 1 1
pa
pc
p w
v :
c u +
u
:
w a
théorème de Ceva :
ratio  a , pc , b .ratio  b , pa , c. ratio c , p b , a=1
Enveloppe convexe

L'ensemble de toutes les combinaisons


convexes d'un ensemble G de points de E3 est
l'enveloppe convexe de G

un cas particulier d'une


combinaison convexe :
l'interpolation linéaire de 2 points
distincts a et b :
Q(t) = (1-­t) a + t b
Changement de paramètre
Le segment [Pa, Pb] est défini par l'application affine
x (t )=(1− ­t ) P a +t P b t ∈[ 0,1]
On peut changer l'espace paramétrique sans changer le segment [Pa, Pb]
Interpolation Polynomiale
soient P0, ..., Pn et t0, ..., tn les valeurs paramétriques
correspondantes
– l'Interpolation = trouver une courbe P(t) passant par tous les
points
– Calculer un polynome satisfaisant les contraintes
d'interpolation : P(ti) = Pi (i=0..n)
• Théorème :
– il existe un polynome unique P de degré ≤ n tel que P(ti) = Pi
(i=0..n) avec Pi et ti fixés
Interpolation Polynomiale

un polynome de degré n interpole une courbe en


(n+1) points
Ex : courbe 2e degré interpole 3 points
x(t) = at2+bt+c en (t1,x1), (t2,x2), (t3,x3)
3 équations linéaires avec 3 inconnues pour trouver a,b,c
Interpolation de Lagrange
courbe « sinueuse », globale, instable
=> polynomes de bas degré et courbe lisse
simuler un fil élastique (thin plate)
Interpolation de Lagrange

Données :
n + 1 points (avec xi distincts 2 à 2).  x 0 , y 0  , x 1 , y 1 .... x n , y n 

Polynomes de Lagrange
n
x− x j x− x 0 x − x j −1 x− x j 1 x− x n
L j  x = ∏ x j − xi
=
x j− x 0
...
x j − x j −1 x j − x j1
...
x j−x n
i= 0, i≠ j

Deux propriétés : ∀ j degre  L j  = n


L j  x i  =  j ,i ie L j  x j =1 ∧ L j  x i =0 if j≠i

n
Lx = ∑ yj Ljx Est l'unique polynome de degré n vérifiant L  x i = yi ∀i
j=0
Polynomes par morceaux
Spline : plusieurs morceaux combinés
combinaison« correcte »

Position et Position,
Position tangence
continuité alignement
des tangentes et continuité
- de la courbure
Polynomes linéaires par morceaux

Interpolation Linéaire
p0

p1
Montrer le segment
dans BI2

p t =1− t  p0 t p 1
2 fonctions de base

−1
1
t
p ( t) = ( t 1) (1
1
0 ) ( )
p0
p1
= ∑
i=O
1
B i ( t) p i 0 1
Courbe de Bézier Lien entre
polynomes de Bernstein,
développement du binome,
et loi binomiale

P10
0

  
1 −2 1 P0
P  t =  
2
t t 1 −2 2 0 P1
0

1 0 0 P02

P 00 B20 t  P00

    
t 2 −2t 1
P t  =
 2
−2t  2t
t2
P1
P2
0

0
= 2
B1 t 
2
B2 t 
P1
P2
0

0
0
P0
0
P2

n
P t = ∑ Bni t  P0i Polynomes de Bernstein
i =O
Degré n=2
Courbe de Bézier Lien entre
polynômes de Bernstein,
développement du binome
et loi binomiale
P10 t  = 1−t  P 00 t P01
1 0 0
P1 t  = 1− t  P 1 tP 2
P10

P20 t  = 1−t  P10 t P11


2 t 
P0 1 t 
1 t  P1
P0
P20 t  = 1−t  1− t  P 00  tP 01
t 1− t  P 01  tP 02 0
P0
0
P2
P20 t  = 1−t 2 P00 2t 1− t  P 01 t 2 P 02
n
2 0 2 0 2 0
= B P B P B P
0 0 1 1 2 2 = ∑ Bni Pi0
i =0
degré n = 2
Fonctions de mélange de Bézier
Démo avec
Degré 1 courbebaseparam Degré 2

B1 1 B0 1
t
0 1

Montrer la courbe
dans BI2 + Propriétés :
Repère entre vecteurs canoniques Enveloppe convexe,
Et point de contrôle Symétrie,
Valeur aux bords
Courbe de Bézier

P10 P10

2 t 
P0 1 t 
1 t  P1 2 t 
P0 1 t 
P1
P0 1 t 
P0

0
P0 0
0
P0
P2 0
P2
Subdivision des courbes de Bézier

Chaque moitié est une courbe de Bézier


Algorithme général de de Casteljau
- 26
Courbe de Bézier
Courbe de Bézier Cubique

0
−1 3 −3 1 P0

( )( )
0
3 2 3 −6 3 0 P1
P( t ) = ( t t t 1)
−3 3 0 0 P 02
1 0 0 0 0
P3

T 0 3 T 0
(1−t )3 P0 B 0 (t ) P0
P( t ) =
( 3 t (1−t ) 2
3 t 2 (1− t )
t
3 ) ( ) ( )( )
P1
0

P 02
P3
0
=
3
B 1 (t )
B 32 (t )
3
B 3 (t )
P1
0

P 02
P3
0
Fonctions de mélange de Bézier

B3
0  t
B33(t)

B13  t
B3
2  t
Courbe de Bézier
De Casteljau

r r −1 r −1
Pi (t )=(1− t ) P i (t )+ tP i +1 (t )

{ r =1 ,... , n
0
Pi (t )= P i
i =0 , ... , n−r t ∈[ 0,1]

P10

2 t 
P0 1 t 
1 t  P1
P0
Faire le De Casteljau récussif
Montrer que toutes courbes polynomiales
Peut être décomposée 0
P0
en 2 courbes du meme type. 0
P2
=> on peut appliquer De Casteljau
Polynomes de Bernstein

Courbe de Bezier :
n
C (t ) = ∑ B ni (t) P i
i =0
n
où les B (t ) sont les polynomes de Bernstein de degré n
i
et les P i les points de contrôl


Polynomes de Bersnstein
n (1 −t)n−i t i
n
Bi ( t) = ()
i
i n!
avec n
i() = C n =
i ! ( n−i ) !
Propriétés des Polynomes de Bernstein
n n −1 n−1

{ Bi t =1− t  B i−1 t t B i−1  t 


B 00 t =1 ∧ B nj t =0 if j ∉ {0, ... , n }

Extrémités et enveloppe Convexe


n

{ ∑ B ni  t = 1
i=0
∧ Bin t ≥ 0 ∀ t ∈ [ 0,1]
B n  0= P 0 ∧ B n 1= P n

Invariance Affine
soit f  x= A . x b une transformation affine
n
n
f  Bn t  =∑ Bi t  f  Pi 
i= 0
Propriétés des Polynomes de Bernstein
Symétrie
n 0
n n n n
B t = B
i n −i 1−t   ∑B i t  Pi =∑ B n−i 1−t  Pi ∀ t ∈ [ 0,1]
i =0 i =n

Invariance Affine des paramètres


u− a
soit t = t ∈[ 0,1] ∧ u ∈[ a , b ] B n  t  est la même courbe que B n u 
b− a

Faire l’inverse passer de u in [a,b]


À t in [0,1]
Propriétés des Polynomes de Bernstein
Dérivées
première dérivée
n −1
dB n (t )
dt =n ∑
i= 0
Δ P i B n −1
i (t ) with Δ P i =P i+ 1−P i
dB ni ( t ) n n
← dt =n ( B i−1 (t )−B i ( t ))
Vecteurs Tangents
dB n  0 dB n 1
=n  P0 ∧ =n  P n −1
dt dt

Forme Générale
d k Bn t n!
n−k k

k
d t
=
 n− k !
∑
i =0
k
Pi B
n−1
i t 
k
with  Pi =
k −1
Pi 1−
k−1

j =0

P i= ∑ k −1
j
k− j
P i j
Courbe de Bézier
Courbe de Bézier
Courbe de Bézier par morceaux
Expliquer raccord C1
Et introduction B-spline uniforme
D'autres cubiques....

Hermite
CatmullRom
Hermite

Pourquoi celles-là ? Elles vérifient :


∇ p0 ∇ p1
p( 0)= p0
p (1)= p1
dp p1
| t=0 =∇ p 0
dt
dp
p0
| =∇ p 1
dt t=1

Interpole les extrémités et les tangentes aux extrémités


- 14
Hermite

Courbe polynomiale : forme générale


3 2
p ( t ) = at +bt +ct+d = T . A
3 2 T
avec T= [ t t t 1 ] et A = [ a b c d ]

a
p( t )= [ t 3
t 2
t 1]
[ ]
b
c
d
Calcul des Splines de Hermite
4 contraintes : positions et tangentes aux extremités
de [0,1]
p (0 )= p0
p ( 1)= p1
dp
| t =0 = ∇ p0
dt
dp
| = ∇ p1
dt t =1

Hyp : forme cubique : p  t  =at 3 +bt 2 +ct+d


4 inconnues : a,b,c,d
Calcul des Splines de Hermite

3 2
comme p (t )= at + bt +ct + d
dp( t )
p ' ( t )= =3 at + 2 bt +c
dt

• Les 4 contraintes donnent 4 équations linéaires


p (0 )= p 0 =d
p (1)= p1=a +b +c +d
dp
| = p ' ( 0)=∇ p 0=c
dt t = 0
dp
| = p ' (1)=∇ p 1=3 a +2 b +c
dt t = 1

• Résoudre en a, b, c, d:
a=2 p 0−2 p 1 + ∇ p 0 + ∇ p1 b=−3 p 0 +3 P1−2 ∇ p 0 −∇ p1 c= p 0 d= p0
Splines de Hermite :
forme matricielle
p0

[ ][
p1 0 0 0 1 a
dp0
dt
dp1
dt
= 1
0
3
1
0
2
1
1
1
1
0
0 ][ ]
b
c
d
Vecteur de Contrôle Base coefficients spline

Résoudre les coefficients spline


p0

[ ][
a
b =
c
d
2 −2
−3
0
1
3
0
0
1

1
0
1
−2 −1
0
0
] []
p1
dp0
dt
dp1
dt

Coefficients
- Spline Base Vecteur de Contrôle
Equation des Splines de Hermite Cubiques

p0
2 −2 1 1

[]p1 T

[ ]
2 t 3 −3 t 2 +1 P1
[ p ]= [ t 3 t 2 t 1 ] −3
0
1
3 −2
0
0
1
0
−1
0
0
dp0
dt
dp1
dt
p( t )=
( −2 t 3 +3 t 2
3

3
t −t
2
t − 2 t +t
2 )( ) p2
∇ p1
∇ p2

Matrice de Base Points/vecteurs de Contrôle


4 fonctions de base des cubiques de Hermite

3 2 T
2 t −3 t +1 P0
p( t )=
( 3

3
3
−2 t +3 t

t −t
2
t −2 t +t
2
2

)( ) p1
∇ p0
∇ p1

4 fonctions de base
t

chaque Spline de Hermite est une combinaison linéaire


(un mélange)- de ces 4 fonctions
Retour aux Courbes
de Bézier

Une sorte de courbe de Hermite
●4 points de contrôle : P et P aux extrémités, P et P
0 3 1 2
contrôlent les tangentes aux extrémités
● p(0)= P0,
● p(1)=P3,
● p'(0)=3(P1-P0),
● p'(1)=3(P3-P2)

Matrice de Bézier ~ Matrice de Hermite

Propriété de l'enveloppe Convexe
de Hermite à Bézier

1 0 0 0 P0 p(0)= P0

[ dp 0 dp 1
p0 p 1 dt dt =

Vecteur de
] [ 0
−3
0
0
3
0
Bézier
0
0
−3
1
0
3 ][ ]
P1
P2
P3
p(1)=P3
p'(0)=3(P1-P0)
p'(1)=3(P3-P2)

Vecteur de
Contrôle de vers Contrôle de
Hermite Hermite Bézier
Bézier : forme matricielle
2 −2 1 1 1 0 0 0 P0
[ P ( t ) ] =[ t
3
t
2
t 1]
[ −3
0
1
3
0
0
−2
1
0
−1
0
0 ][ 0
−3
0
0
3
0
0
0
−3
1
0
3 ][ ]
P1
P2
P3

Base de Bézier vers Vecteur de


Hermite Hermite Contrôle de
Bézier
−1 3 −3 1 P0
[ P ( t ) ]= [ t
3
t
2
t 1]
[ 3
−3
1
−6
3
0
3
0
0
0
0
0 ][ ] P1
P2
P3
Fonctions de Base de Bézier
3 T
( 1−t )

[ ][ ]
P0
2
p ( t )= 3t ( 1−t ) P1
2
3t ( 1−t ) P2
t
3 P3

Polynomes de Bernstein de degré 3


Positifs sur [0,1], somme à 1
Propriété : courbe dans l'enveloppe convexe des points de contrôle
Fonctions de mélange de Bézier

- 25
Composition de Splines de Hermite
Spline de Hermite composée

Chaque morceau est une cubique de Hermite

Spécifier la position et la tangente à chaque joint

Les morceaux interpolent les positions et les tangentes

Continuité C1
A partir d'une liste de positions et tangentes, construire une cubique
par morceaux qui passe à chaque point
Ces points sont les joints ou points nodaux
Splines de Catmull-Rom
Avec Hermite ou Bézier, difficile de composer des courbes assurant la continuité C1 ou G1
Catmull-Rom : splines cubiques d'interpolation C1 continues
Données :
● (n+1) points de contrôle P0,...,Pn
● Tangentes à chaque Pi : s (Pi+1 – Pi-1) i=2..n-1

« fantômes » aux extrémités
● Splines de Hermite “en série”. Chaque morceau est déterminé par 4 points
Matrice de Catmull-Rom
−s 2−s s−2 s P0

[] [ ][ ]
a
b 2s s−3 3−2s −s P1
=
c −s 0 s 0 P2
d 0 1 0 0 P3

Coefficients Matrice de Points de


Spline Catmull-Rom Contrôle

Calcul comme pour Hermite et Bezier


S : paramètre de tension (souvent s=1/2)
Splines cubiques, interpolation, localité, C2?
Localité Interpolation C2

Splines de Oui et non Oui et non Oui et


Bezier non

Catmull oui oui non


Rom

non oui oui


Splines
Naturelles

B-splines oui non oui

On ne peut pas tout avoir avec du cubique !!!


B-Splines

Approximation (pas d'interpolation)


la courbe passe « près » des points de contrôle
Propriété d'enveloppe Convexe
Continuité C2 ,contrôle local
Base des B-Splines
cubiques uniformes

−1 3 −3 1 P i −3
Pi ( t ) = [ 3
t t
2
t 1]
1
6
[ 3
−3
1
−6
0
4
3
3
1
0
0
0 ][ ]
P i −2
P i −1
Pi
B-Splines Non Uniformes
Séquence non uniforme
Différentes fonctions de base pour
chaque intervalle nodal (morceau de courbe)
joint Contrôle local
possible réduction de la continuité

Séquence nodale ou vecteur nodal


Courbes B-Spline : exemples
Ordre = degré+1
Faire démo
BsplineNonUniforme

Vecteur nodal

Fonctions de Base
Courbes B-Spline : exemples

Points de Contrôle et ordre inchangés. Le vecteur nodal change


Courbes B-Spline : exemples

points de Contrôle et vecteur nodal inchangés. L'Ordre change


Courbes B-spline

Courbe Globale : t Î [t0,tm+k]


C t =∑ P i Bi , k  t 
i=0

j =m

Union de m-k+2 courbes C (t ) = ∐ C j(t)


j= k −1

j= m i=0

chaque courbe Cj est d'ordre k


C (t ) = ∐ ∑
j=d
( i =−( d )
P i+ j N i + j , d (t )
)
Exemple : ordre k=4, 10 points de
contrôle (de 0 à m=9), m+k=13
noeuds, m-k+2=7 morceaux de
courbe
Courbes B-splines
n = nb de points de controle
n−1 k = d +1, ordre
Equation de la Courbe : C (t )=∑ N i , d ( t ) P i d = degré
i =0

Vecteur nodal : T ={t i ; i ∈{0,... , n −1 + k } et t 0 ⩽t i⩽ t n−1 +k }

Calcul par Récurrence


N i ,0 (t )= 1 si t ∈ [ t i , t i+1 [
{ 0 sinon
t−t i t i+ d+1 −t
N i , d (t)= N i , d−1 (t ) + N i +1 ,d−1 (t ) pour t ∈{2 , k }
t i+ d −t i t i+d +1 −t i+ 1
0
(convention 0)
0
Courbes B-splines
[
N i ,0 (t )=
{
1 si t ∈ t i , t i+1 [
O sinon

t −t i
N i ,1 = N i ,0
t i+ 1−t i
t i +2 −t
+
t i +2 −t i +1
N i +1,0
ti ti 1 ti  2 ti 3 ti  4
t−ti t−ti
N i ,2 = N i ,0
t i +2 −t i t i +1− t i N i ,3 ( t )

+
{t −t i t i +2 − t
t i + 2− t i t i +2 − t i +1
+
t i +3 −t t − t i+ 1
t i +3 −t i+ 1 t i +2 −t i +1 } N i +1,0

t i+ 3−t t i+3 −t
+ N i +2,0
t i+ 3−t i +1 t i+3 −t i +2
Courbes B-splines Démo blender

Ordre k = 3 Ordre k = 4

Ordre k = 2
B-Splines : nb morceaux

B(u)

u
u0 uk-1 um+1 um+k

Exemple ici :
k=3 N =[ n−1+ k−( k−1)]−[ 0 +( k −1)]
n=7
n-k+1=7
=[ n ]−[ k −1]
=n−k + 1
Continuité

Paramétrique : Ck Géométrique : Gk
P(u) continue jusqu'à la kème P continue indépendament
dérivée de u jusqu'à la ke dérivée
Valeur, pente, 2e dérivée,... Position, tangent,
Important pour les courbure,...
animations (paramètre CAGD,...
=temps)

Une courbe peut être Gk et pas Ck .


Et vice versa ?
Produit Tensoriel
P11
Exemple :Interpolation Bilinéaire
=> cas de surface réglée
v P01
v
P00
P.,0 (u ) = (1− u) P 0,0 +uu P1,0
P.,1 (u) = (1− u) P 1,0 +u P 1,1
P0,. ( v) = (1− v) P 0,0 + v P 0,1
u
P1,. (v ) = (1− v) P1,0 +v P 1,1
P10 P ( u , v) = (1− v) P.,0 ( u )+v P.,1 (u)
= (1− u) P 0,. (v )+v P 1,. (v )
= (1− u)(1−v ) P 0,0 +(1− u) v P 0,1
P ( u , v)= [ 1−u u]
[ P0,0
P1,0
P 0,1
P 1,1 ][ ]
1−v
v
+ u( 1− v) P 1,0 + u v P 1,1
Produit Tensoriel
P11
Exemple :Interpolation Bilinéaire
=> cas de surface réglée
v P01
v
P00
u
P ( u , v)= [ 1−u u]
[ P0,0
P1,0
P 0,1
P 1,1 ][ ]
1−v
v

u
Ou encore
P10

P ( u , v)= [ u 1]
[ −1
1
1
0 ][ P 0,0
P 1,0
P 0,1
P 1,1 ][ −1
1
1
0 ][ ]
v
1

= [u 1] M BP MB v
T

1 []
Produit Tensoriel
m
P (u)=∑ P i B m
m
i
(u)
i =0
n
Pi (v )= ∑ P i , j Bnj (v )
j =0

m n
m n
P u , v = ∑ ∑ Pi , j Bi u B j v 
i= 0 j =0
Surfaces Bicubiques
Surfaces à l'aide de fonctions bicubiques
x(u,v),y(u,v),z(u,v) polynômes bicubiques en u et v
16 termes pour combiner les puissances de u et v

Matriciellement u= [ u 3 u 2 u 1 ] v= [ v 3 v 2 v 1 ]
s ( u,v ) = u A v T ou encore s ( u,v ) = u M P M T v T
avec M matrice de base et P matrice de points de contrôle

(produit tensoriel)
Produit Tensoriel

[ ][ ]
1 1
P 0,0 P 0,1 1−v
P u , v =[ 1−u u] 1 1
P u , v =∑ ∑ Pi , j Bi u B j v 
P1,0 P 1,1 v i= 0 j =0
De Casteljau
P03

[ ][
r −1, r −1 r−1, r−1
Pi , j Pi , j 1
r ,r
Pi , j =[ 1− u u]
P
r −1, r −1
i1, j P
r−1, r−1
i 1, j1
1− v
v ]
v r =1,... , n i , j= 0, ... , n− r

P00
P33
P0033
u

v
P2011
u
P30
Surfaces de Bézier

m n
S  u , v =∑ ∑ Pi , j Bm
i u  B n
j v   u , v ∈[ 0,1] 2
i=0 j =0

Pi , j Réseau des points de contrôle

Bm
i ( u) et Bnj ( v)
Fonctions de base de Bézier
v

u
Surfaces de Bézier
Surfaces B-splines (NUBS)

m n
S u , v =∑ ∑ Pi , j N ki u N lj v  u , v ∈[u 0, um k ] x [ v 0, v n l ]
i= 0 j =0
Pi , j avec i ∈{0, m } et j ∈{0, n}
U ={ui / 0i m k ∧ u 0⋯u i⋯um k }
V ={v j / 0 jnl ∧ v 0 ⋯ v j ⋯ v nl }
k l
N i u et N j v  : fonctions de base
isoparamétriques
v
Surfaces B-Splines (NUBS)

v
vn+l
vn+
1

vl-
1

v0

u
u0 uk-1 um+1 um+k

N =(m −k +2) x (n−l +2)


B-Splines : carreaux (patchwork)
ex : bicubiques
Courbes sur surfaces

Isoparametric curves
v
q=(qu,qv)

C(t)=(1-t)p+tq

p=(pu,pv)
u

83
Vecteur Normal & Torsion
Vecteur Normal

∂ s u , v ∧ ∂ s u , v
∂u ∂v
n u , v =
∂ s u , v ∧ ∂ s u , v
∂u∥ ∂v ∥
Vecteur Torsion
∂ 2 s u , v 
∂u∂v
t u , v =
∂ 2 s u , v 
∥ ∂u∂v ∥ 84
NURBS

Idée : utiliser les coordonnées homogènes

Plus ”vastes” que les B-Splines non uniformes : permettent
aussi une représentation exacte des surfaces coniques
(dont les cônes à base circulaire ou elliptique, la sphère et
les ellipsoïdes avec un axe focal d'orientation quelconque,
les paraboloïdes et hyperboloïdes, mais aussi les facettes
planes…)

Conservent leurs propriétés via certaines transformations
non isométriques comme les projections, y compris la
perspective 85
NURBS
m

∑ w i Bi ,k ( t ) Pi
i =0
C (t )=

Courbes : m

∑ w i Bi , k (t )
i =0

m n

∑ ∑ wi , j Bi , k (u ) B j ,l ( v ) Pi , j
i =0 j =0

Surfaces : S (u , v )= m n

∑ ∑ wi , j B i , k (u ) B j , l ( v )
i= 0 j =0

86
NURBS : effet de la variation de w1 (poids de P1)
87
Carreaux de Coons
Idée : remplir entre courbes
C2(u)
D1(v)

C1(u) D2(v)

Degré qcq
u ∈ [umin,umax], v ∈ [vmin,vmax] 88
Carreaux de Coons
Idée : remplir entre courbes
C2(u)
D1(v)

C1(u) D2(v)

Degré qcq
u ∈ [umin,umax], v ∈ [vmin,vmax] 89
Surfaces Réglées
Surface qui interpole c1(u) et c2(u)
u ∈ [umin,umax], ex : [0,1].
trouver x(u,v) / x(u,0) = c1(u) ∧ x(u,1) = c2(u).
Solution la + simple : interpolation linéaire
x u , v =1− v c 1 u v c 2 u
x u , v =1− v x u ,0v x u ,1

90
Carreaux de Coons
2 surfaces réglées
r c (u , v)=(1 − v) c1 ( u)+v c 2 ( u)=(1− v) x ( u ,0)+v x (u ,1)
r d (u , v)=( 1−u ) d 1 (v )+u d 2 (v )=(1− u) x (0 , v )+u x (1 , v )
rc interpole c1(u) et c2(u) mais ne reproduit pas d1(v) ni d2(v)
(idem pour rd)

r cd  u,v =[ 1−u u ] [ x  0,0 


x 1,0 
x  0,1 
x  1,1  ][ ]
1− v
v

=> retirer interpolation bilinéaire


Carreau de Coons : x = rc + rd – rcd 91
Carreaux de Coons
Coons Bilinéaire Coons Général

x (u , v)= [ 1−u u]
[ x (0 , v)
x (1 , v)] [
x (u , v)= f 1 (u) f 2 ( u) ] [ x (0 , v )
x (1 , v ) ]
+ [ x (u ,0) x ( u ,1) ][ ] 1− v
v
+ [ x (u ,0) x ( u ,1) ]
[ g 1 (v)
g 2 ( v) ]
[ ][
− 1− u
u
x ( 0,0)
x (1,0)
x (0,1 )
x (1,1) ][ 1− v
v ] −
[ f 1 (u)
f 2 ( u) ][ x (0,0)
x (1,0)
x ( 0,1)
x (1,1) ][ g1 ( v)
g2 (v ) ]

92
Coons Patches
Inconvénient

u [0,2], v [0,1] Bords x(u,0) et x(u,1) differentiables


Derivees croisées discontinues le long de x(1,v)
93
Carreaux de Coons Mélange Partiel Bicubique
3 3 2
H 0 ( t ) = 2 t − 3 t +1
Fonctions de Hermite : f1=g1=H03 et f2=g2=H33 3
H 1 ( t ) = t −2 t +t
3 2

3 3 2
H 2 (t )= t −t
H 3 (t )=− 2 t 3+ 3 t 2
Derivée ”transverse” (suivant v) le long de u=0 :
3

[
x u (0 , v )= x u ( 0,0)

Tous les autres termes disparaissent car


x u ( 0,1) ] [ H 0 (v )
3
H 3( v) ]
dH 33 i (0) dH 33 i (1)
= =0 i = 0,1
du du
Derivée croisée le long d'un bord depend seulement de ce bord
Inconvénient : aplats aux coins x uv i , j = 0 i , j ∈{0,1}
94
Carreaux de Coons Mélange Partiel Bicubique

Données : x ( u ,0) , x ( u ,1) , x ( 0, v) , x (1 , v )


x v ( u ,0) , xv ( u ,1) , x u ( 0, v) , x u ( 1 , v) (tangentes le long
des courbes)

= ”rubans tangents ”

x u(
1,v
)
)
( 0,v
xu
v

u
95
Carreaux de Coons Bicubique

Surfaces réglées généralisées


h c u , v= H 30  u x  0, v  H 31 u x u  0, v H 32 u  x u 1, v  H 33 u  x 1, v 
h d u , v = H 30  v x u ,0  H 31 v  x v u ,0 H 32 v  x v u ,1 H 33  v x u ,1

x 0,0 x v 0,0  x v 0,1 x  0,1 H 30  v

[ 3
h cd u , v = H u 
0
3
H u
1
3
H u
2

Carreau de Coons : x = hc + hd – hcd


3
H u
3 ]
[ x u  0,0
x u 1,0 
x 1,0
x uv 0,0 
x uv 1,0 
x v 1,0 
x uv 0,1
x uv 1,1
x v 1,1
xu 0,1
x u 1,1
x 1,1
][ ]
3
H 1  v
3
H 2  v
3
H 3  v

2
x uv ( i , j )= ∂ x ( i , j )= ddl ( à choisir )
∂u∂ v
Vecteurs twist à choisir aux quatre coins du patche 96

Vous aimerez peut-être aussi