Vous êtes sur la page 1sur 67

INF2705 Courbes et surfaces

INF2705 Infographie
11-1
Courbes
et
surfaces
INF2705 Courbes et surfaces
INF2705 Infographie
11-2
Reprsentations de courbes et de surfaces
Reprsentation explicite/implicite
Utilisation de surfaces algbriques: les quadriques
Approximation polygonale
Contrle plus complexe pour la modlisation de grande prcision
Reprsentation paramtrique
!es splines cubiques
Courbes et surfaces de "#ier
Courbes et surfaces "-$plinaires
Courbes %UR"$
INF2705 Courbes et surfaces
INF2705 Infographie
11-&
Reprsentation explicite/implicite
Reprsentation explicite
'orme explicite d(une courbe en 2): y * f+x,
'orme explicite d(une surface: # * f+x- y,
.l n(existe pas tou/ours une reprsentation explicite pour toutes les
courbes et surfaces d(intr0t
Reprsentation implicite
'orme implicite d(une courbe en 2): f+x- y, * 1
'orme implicite d(une surface en &): f+x- y- #, * 1
ax 2 by 2c# 2 d * 1 est l(quation d(un plan
x
2
2 y
2
2 #
2
3 r
2
* 1 est l(quation d(une sp45re de rayon r centre 6 l(origine
.l peut 0tre difficile de reprsenter une courbe en &) sous une forme
implicite
.ntersection de deux surfaces: f+x- y- #, * 1 et g+x- y- #, * 1
INF2705 Courbes et surfaces
INF2705 Infographie
11-7
!es surfaces quadriques
8quation algbrique implicite d(une quadrique
9+x- y- #, * a
1
x
2
2 a
2
y
2
2 a
&
#
2
2 a
7
xy 2 a
:
x# 2 a
;
y# 2 a
<
x 2 a
=
y 2 a
>
# 2 a
11
?anipulation des quadriques dans @penA!
Crer un ob/et de type quadrique 6 l(aide de glu%eB9uadric+,
$pcifier les attributs de l(ob/et cre 6 l(aide de:
glu9uadric@rientation+,- glu9uadric)raB$tyle+,- glu9uadric%ormals+,-
glu9uadricCexture+,
)finir une fonction de gestion des erreurs 6 l(aide de
glu9uadricCallbacD+,
$pcifier le type de quadrique dsir 6 l(aide des primitiEes:
glu$p4ere+,- gluCylinder+,- glu)isD+, ou gluFartial)isD+,
!es normales et les coordonnes de texture peuEent 0tre gnres
automatiquement
@penA! implmente ces ob/ets 6 l(aide d(une approximation
polygonale
INF2705 Courbes et surfaces
INF2705 Infographie
11-:
Approximation polygonale des surfaces
Augmenter le nombre de polygones +maillage plus fin, pour mieux
approximer la surface:
diminue l(erreur de reprsentation +2,
matriel d/6 disponible pour des polygones +2,
augmente l(espace mmoire +-,
augmente le temps requis pour le rendu +-,
augmente le nombre de points 6 manipuler pour modifier la surface +-,
INF2705 Courbes et surfaces
INF2705 Infographie
11-;
Gistorique des courbes et surfaces
paramtriques polynomiales
)ans des applications relles:
Une tra/ectoire est dfinie par une courbe
Un ob/et rel est dfini comme une surface lisse
$olution paramtrique polynomiale:
Courbe +cubique,: x+t,- y+t,- #+t,
$urface ou facette +bicubique,: x+s- t,- y+s- t,- #+s- t,
$plines cubiques dEeloppes c4e# A? dans les annes :1H
Courbes de "#ier dEeloppes c4e# Renault et Feugeot dans les
annes ;1 et <1H
Courbes "-$plinaires et %UR"$ dEeloppes c4e# "oeing dans
les annes <1 et =1H
INF2705 Courbes et surfaces
INF2705 Infographie
11-<
Courbes d(interpolation et d(approximation
)eux catgories:
!es courbes d(interpolation +collocation, passent- par dfinition- par
les points de contrleH
exemples: splines linaires +polylignes,- splines cubiquesH
!es courbes d(approximation peuEent passer par certains points de
contrle- mais en gnral- ne passent pas par tous les pointsH
exemples: courbes de "#ier- "-$plines- %UR"$H
INF2705 Courbes et surfaces
INF2705 Infographie
11-=
Courbes splinaires
INF2705 Courbes et surfaces
INF2705 Infographie
11->
%otion de spline
Courbe polynomiale par morceaux
Four c4aque morceau- on dfinit :
@rdre ou degr des polynmes
+ordre * degr 2 1,
Flage du param5tre
@rdre de continuit aux /onctions
C4aque morceau peut s(crire sous la forme:
P
0
P
1
P
2
( )

i
i i
G N t f
aEec:
t le param5tre de la courbe-
f(t) la fonction polynomiale-
G
i
la i
5me
information gomtrique
N
i
(t) la i
5me
fonction de base ou de pondration
INF2705 Courbes et surfaces
INF2705 Infographie
11-11
'onction polynomiale par interEalles
Une fonction spline de degr m et dIordre de continuit r est une
fonction polynomiale par interEalles de degr m- dfinie par
exemple sur n interEalles de la mani5re suiEante:
f( t ) = f
i
( t ) si t
i
t t
i+1
pour i = 0, ..., n-1
et satisfaisant aux conditions suiEantes:
f
i-1
(j)
( t
i
) = f
i
(j)
( t
i
) si i = 1, 2, ..., n-1 et j = 0, 1, ..., r-1
!a continuit de la /
i5me
driEe de f aux Ealeurs nodales
la continuit de f et de ses r-1 premi5res driEes aux fronti5res
des interEallesH

INF2705 Courbes et surfaces
INF2705 Infographie
11-11
$plines linaires
Reprsentation d(un segment de droite:
'orme explicite:
y = mx + b
'orme paramtrique:
x = ( 1 - t ) P
1x
+ t P
2x
y = ( 1 - t ) P
1y
+ t P
2y
'onctions de base:
N
1
= (1 t ) N
2
= t 0 t 1
.nformation gomtrique:
P
1
et P
2
1 P
2 P
x
y
INF2705 Courbes et surfaces
INF2705 Infographie
11-12
$plines linaires
Reprsentation dune srie de segments de droite en
forme paramtrique (degr 1, ordre 2):
P(t) = (1-t) P
1
+ t P
2
+ 0 P
3
si 0 t 1
P(t) = 0 P
1
+ (1-(t-1)) P
2
+ (t-1) P
3
si 1 t 2
1 P
2 P
x
y
3 P
INF2705 Courbes et surfaces
INF2705 Infographie
11-1&
$plines linaires
!a paramtrisation de la courbe
influence la qualit de la reprsentation
de la courbe:
$i l(on fixe un t constant- la paramtrisation
influence la JEitesse de parcoursK de la
courbe
Four obtenir une JEitesseK constante-
on reparamtrise souEent la courbe en
fonction de la longueur de c4aque
segment:
Four le segment 1 +de longueur L
1
,:
Four le segment 2 +de longueur L
2
,:
1 P
2 P
x
y
3 P
total
L
L
t
1
0
1
1
t
L
L
total
INF2705 Courbes et surfaces
INF2705 Infographie
11-17
$plines cubiques
!es splines cubiques sont des courbes
polynomiales par morceaux- dont
c4aque segment est reprsent par un
polynme de degr & +ordre 7,H
Une faLon naturelle de reprsenter un
segment de spline cubique est d(utiliser
comme information gomtrique :
la position des points aux deux extrmits
le Eecteur tangent 6 c4aque extrmit
1 P
2 P
x
y
2 V
1 V
INF2705 Courbes et surfaces
INF2705 Infographie
11-1:
$plines cubiques
Four un segment de spline cubique-
deEient:
aEec:
H
1
(t) = 2t
3
- 3t
2
+1
H
2
(t)

= -2t
3
+ 3t
2
H
3
(t)

= t
3
- 2t
2
+ t
H

(t)

= t
3
- t
2
!es H
i
+t, sont les polynmes d(Germite de degr &H
1 P
2 P
x
y
1 V
2 V
( )

i
i i
G N t f
Pt =
[
H
1
t , H
2
t , H
3
t , H
4
t
]
[
P
1
P
2
V
1
V
2
]
INF2705 Courbes et surfaces
INF2705 Infographie
11-1;
$plines cubiques
Une courbe est obtenue en assemblant
plusieurs segments:
!es Eecteurs tangents associs aux
nMuds internes peuEent 0tre calculs
automatiquement en rsolEant un
syst5me linaireH
Four construire le syst5me linaire- on
impose la continuit des tangentes et
des courburesH
.l faut imposer deux conditions limites
en plus de la position des points pour
obtenir un syst5me ayant autant
d(quations que d(inconnuesH
x
y
1 V
3 V
1 P
2 P
2 V
3 P
INF2705 Courbes et surfaces
INF2705 Infographie
11-1<
Courbes de Bzier
INF2705 Courbes et surfaces
INF2705 Infographie
11-1=
Courbes de "#ier
Caractristiques
le premier et le dernier nMud sont colloqus-
la courbe est tangente au premier segment et au dernier du
polygone de contrle-
lIinformation pour la reprsentation de la courbe est constitue
de points seulement et ne comprend pas les Eecteurs tangents
de faLon expliciteH
!e degr des polynmes est tou/ours le nombre de points +n,
moins 1- +!(ordre de la courbe est n,H
INF2705 Courbes et surfaces
INF2705 Infographie
11-1>
Courbes de "#ier
.de:
Remplacer les Eecteurs tangents par des points de contrle
internesH
!(ensemble ordonn des points de contrle forment le polygone
de contrle
1 P
2 P
3 P
4 P
La courbe de Bzier est toujours l'intrieur du polygone de contrle !
INF2705 Courbes et surfaces
INF2705 Infographie
11-21
Courbes de "#ier
)Eeloppement mat4matique 6 partir des formes dIGermite
+pour 7 points,:
@n remplace les ! par
( )
1 2 1 2 1
P P K P P V

( )
3 4 3 4 2
P P K P P V

[
Pt =
[
H
1
t , H
2
t , H
3
t , H
4
t
]
P
1
P
2
V
1
V
2
] 1 P
2 P
x
y
1 V
2 V
1 P
2 P
3 P
4 P
INF2705 Courbes et surfaces
INF2705 Infographie
11-21
Courbes de "#ier
Ce qui donne:
oN la notation
P
1
P(0)
P
7
P(1)
oN P
2
et P
&
sont deux nouEeaux points compltant le polygone de
contrle
( )
( )
( )
1
1
1
1
]
1

3 4
1 2
4
1
4 3 2 1
H
P P K
P P K
P
P
H H H P

INF2705 Courbes et surfaces


INF2705 Infographie
11-22
Courbes de "#ier
On explicitant on trouEe:


Pt =
[
2t
3
3t
2
1K t
3
2t
2
t
]
P
1
K t t 1
2
P
2
K t
2
t 1 P
3

[
2t
3
3 t
2
Kt
3
t
2

]
P
4

La courbe de Bzier n'a que des points de contrle !


INF2705 Courbes et surfaces
INF2705 Infographie
11-2&
Courbes de "#ier
$ymtrie entre t et +t - 1, dans les coefficients de P
2
et P
&
que lIon
peut tendre 6 P
1
et P
7
par un c4oix /udicieux de " gal 6 & alors-
( ) ( ) ( ) ( ) [ ]
[ ]
1
1
1
1
]
1

1
1
1
1
]
1


4
3
2
1
3 , 3 3 , 2 3 , 1 3 , 0
4
3
2
1
3 2
2 3
, , ,
, 1 3 , 1 3 , 1
P
P
P
P
J J J J
P
P
P
P
t t t t t t t P

INF2705 Courbes et surfaces


INF2705 Infographie
11-27
Courbes de "#ier
Four & points
On prenant "*2- on obtient
( ) [ ]
( )
( )
1
1
1
1
]
1

+ + +
2 3
1 2
3
1
2 3 2 3 2 3 2 3
, 2 , 3 2 , 1 3 2
P P K
P P K
P
P
t t t t t t t t t t P

( ) ( ) ( ) [ ]
[ ]
1
1
1
]
1

1
1
1
]
1


3
2
1
2 , 2 2 , 1 2 , 0
3
2
1
2
2
, ,
, 1 2 , 1
P
P
P
J J J
P
P
P
t t t t t P

INF2705 Courbes et surfaces


INF2705 Infographie
11-2:
Courbes de "#ier
On gnralisant et en numrotant les points P
i
de 1 6 n- on obtient
oN les points P
i
* +x
i
- y
i
- #
i
, sont les +n+1) points de contrle et les
polynmes $
i-p
sont dfinis par
( ) ( )

n
i
i p i
P t J t P
0
,

( ) ( )
( )! !
!
o 1

,
i p i
p
i
p
t t
i
p
t J
i p
i
p i

1
]
1

1
]
1


INF2705 Courbes et surfaces
INF2705 Infographie
11-2;
Courbes de "#ier
Four : points- %*7
( ) ( ) ( ) ( ) ( ) [ ]
[ ]
1
1
1
1
1
1
]
1

1
1
1
1
1
1
]
1


5
4
3
2
1
4 , 4 4 , 3 4 , 2 4 , 1 4 , 0
5
4
3
2
1
4 3
2
2
3 4
, , , ,
, 1 4 , 1 6 , 1 4 , 1
P
P
P
P
P
J J J J J
P
P
P
P
P
t t t t t t t t t P
INF2705 Courbes et surfaces
INF2705 Infographie
11-2<
Courbes de "#ier
Critique des courbes de "#ier
!es courbes de "#ier utilisent de l(information issue uniquement des
points de contrle +2,
.ntroduisent le concept de polygone de contrle et d(enEeloppe
conEexe +2,
FeuEent 0tre trace efficacement 6 l(aide d(un algorit4me de
subdiEision +algorit4me de Castel/au, +2,
!(ordre des polynmes formant les fonctions de base est gal au
nombre de points de contrle- et donc croPt rapidement +-,
Coutes les fonctions de base influencent la forme de la courbe sur
toute la plage du param5tre: pas de contrle local +-,
INF2705 Courbes et surfaces
INF2705 Infographie
11-2=
$urfaces de "#ier
!es facettes de surfaces de "#ier sont gnres 6 partir de la formule
suiEante:
P
ij
constitue l(ensemble des (m+1)x(n+1) points de contrle et $
i,%
et $
j,&

sont les polynmes de "ernstein dfinis cette fois ci pour les deux
directions s et tH
Une facette bicubique de "#ier a pour enEeloppe conEexe le polygone
dfinis par les 1; points de contrle P
ij
pour i=0, 3 et j=0, 3 et passe par les
points P
00
, P
03
, P
30
et P
33
H
!es autres conditions d(approximations sont dcrites par les driEes aux
coins de la facette
ij q j
n
i
m
j
p i
P s J t J s t P ) ( ) ( ) , (
,
0 0
,

INF2705 Courbes et surfaces


INF2705 Infographie
11-2>
X
Y
Z
Grille des points de ontr!le
"iretion p#r#$%tri&'e s
"iretion p#r#$%tri&'e t
$urfaces de "#ier
INF2705 Courbes et surfaces
INF2705 Infographie
11-&1
?anipulation des courbes et des surfaces
de "#ier aEec @penA!
!e polynme de "ernstein de degr n +ordre n+1, est donn par:
$i P
i
reprsente l(ensemble des points de contrle pour i * 1 6 n
l(quation de la courbe de "#ier pour t Eariant de 1H1 6 1H1 est
donne par:
AEec @penA!- la commande '()*%1() permet d(Ealuer l(quation
c++-+
1
/+
2
-+
1
, pour permettre au param5tre + de Earier entre +
1
et +
2
( ) ( )
( )! !
!
o 1

,
i p i
p
i
p
t t
i
p
t J
i p
i
p i

1
]
1

1
]
1



ct =

i=0
n
J
i , p
t P
i
INF2705 Courbes et surfaces
INF2705 Infographie
11-&1
8Ealuation d(une courbe de "#ier
Une courbe de "#ier est Ealue dans @penA! 6 l(aide de la
commande:
gl?ap1QfdR+ A!enum target- CSFO u
1
- CSFO u
2
-
A!int stride- A!int order-
const CSFO Tpoints ,U
Oxemple:
A!double dataV W * QXHRU
gl?ap1d+A!Y?AFYZORCO[Y&- 1H1- 1H1- &- 7- data,U
glOnable+A!Y?AFYZORCO[Y&,U doit 0tre appel pour actiEer l(Ealuateur
glOEalCoord1d+u,U doit 0tre utilis 6 la place de glZertex pour gnrer les
diffrents points de la courbe selon une rsolution donne
Autres Ealeurs du premier argument:
A!Y?AF1Y%ormal pour gnrer les normales aux sommets
A!Y?AF1YCO[CUROYC@@R)Y1 pour gnrer de la texture
A!Y?AF1YC@!@RY7 pour gnrer de la couleur en RA"A
etcH
INF2705 Courbes et surfaces
INF2705 Infographie
11-&2
Oxemple:
Anrer une courbe de "#ier sur l(interEalle V1- 11W 6 l(aide de 111
points quidistants:
'(,e'in( G-.-/N0.123/P )4
f5r ( int i=04 i6= 1004 i++)
'(07*(855r91f( (f(5*t) i:100.0 )4
'(0n9+ ,U
@penA! offre une autre alternatiEe lorsque les Ealeurs de + sont
rparties 6 une distance uniforme:
gl?apArid1f+ +n, +1, +2 ,U glOEal?es41+ m59e, i1, i2 ,U
exH : '()*%Gri91f( 100, 0.0, 10.0 )4 '(07*()es;1( G-.-/N0, 0, 100 )4
quiEalent 6 :
gl"egin+ m59e ,U for + int i * i1U i \* i2U 22i ,
glOEalCoord1f+ +1 2 i T ++2-+1,/+n ,U
glOnd+,U
8Ealuation d(une courbe de "#ier
INF2705 Courbes et surfaces
INF2705 Infographie
11-&&
)finir un Ealuateur
75i9 '()*%1<f9= ( G-en+m t*r'et, :: G-.)>P...
2?P0 +1, :: 7*(e+r initi*(e 9+ %*r*m@tre
2?P0 +2, :: 7*(e+r fin*(e 9+ %*r*m@tre
G-int stri9e, :: inArBment entre x s+AAessifs
G-int 5r9er, :: 5r9re 9e (* A5+rbe = nb %5ints
A5nst 2?P0 C %5ints )4 :: %5ints 9e A5ntrD(e
G-.)>P1.!0320E.3 x,y,#
G-.)>P1.!0320E. x,y,#,;
G-.)>P1./NF0E r,',b,*
G-.)>P1.NG3)>- N5rm*(e
G-.)>P1.20E2H30.8GG3F.1 855r95nnBes 9e tex+re s
G-.)>P1.20E2H30.8GG3F.2 855r95nnBes 9e tex+re s,t
G-.)>P1.20E2H30.8GG3F.3 855r95nnBes 9e tex+re s,t,r
G-.)>P1.20E2H30.8GG3F. 855r95nnBes 9e tex+re s,t,r,&
8Ealuation d(une courbe de "#ier
INF2705 Courbes et surfaces
INF2705 Infographie
11-&7
8Ealuer les points de la courbe
75i9 '(07*(855r91<f9= (2?P0 +)4 :: 7*(e+r 9+ %*r*m@tre
75i9 '(07*(855r91<f9=7 (2?P0 C+)4 :: 7*(e+r 9+ %*r*m@tre
Oxemple
75i9 >ffiA;erIi(s( P5int3F.2 C%ts )
<
A5nst int Gr9re = 4
A5nst int n = 304
'()*%1f( G-.)>P1.!0320E.3, :: 5n 7e+t 9es 7ertex en 3F
0.0, 1.0, :: + 7*rie 9e 0.0 J 1.0
3, :: inArBment entre (es x
Gr9re, :: 5r9re 9e (* ,B#ier = nb %ts
(G-f(5*t C) %ts )4 :: %5ints 9e A5ntrD(e
'(0n*b(e( G-.)>P1.!0320E.3 )4
'(85(5r3f( 0.2, 0.2, 0.2 )4
'(,e'in( G-.-/N0.123/P )4
f5r ( int i = 04 i 6 n4 i++ ) :: K7*(+*ti5n 9e n %5ints intermB9i*ires
'(07*(855r91f( (G-f(5*t) i :n )4
'(0n9()4
=
8Ealuation d(une courbe de "#ier
INF2705 Courbes et surfaces
INF2705 Infographie
11-&:
!(Ealuation d(une surface de "#ier dans @penA! est similaire 6
celle des courbes sac4ant que les commandes utilises ont besoin
de deux param5tres + et 7H
gl?ap2QfdR+ A!enum target- CSFO u
1
- CSFO u
2
- A!int ustride-
A!int uorder- CSFO E
1
- CSFO E
2
- A!int Estride-
A!int Eorder- CSFO Tpoints ,U
glOEalCoord2QfdR+ CSFO u- CSFO E ,U
gl?apArid2QfdR+ A!int nu- CSFO u
1
- CSFO u
2
-
A!int nE- CSFO E
1
- CSFO E
2
,U
glOEal?es42+ A!enum mode- A!int i
1
- A!int i
2
- A!int /
1
- A!int /
2
,U
8Ealuation d(une surface de "#ier
INF2705 Courbes et surfaces
INF2705 Infographie
11-&;
Courbes B!plines
INF2705 Courbes et surfaces
INF2705 Infographie
11-&<
Courbes "-$plines
.de: fournir un contrle local sur la courbe en utilisant des
fonctions de base 6 support compactH
$oit une courbe 8(t) dont la plage de param5tre Ea de t*1 6 t*1-
$oit:
aEec: P
i
la position des points de contrle
N
i-D
(t) les fonctions des base d(ordre D
$i la fonction de base i 6 un support compris entre
t * +
/
et t * +
/2D
-
le point de contrle P
i
n(a de l(influence sur la courbe qu(6 l(intrieur
de cette plage de param5treH
( ) ( )

n
i
i k i
P t N t C
1
,

INF2705 Courbes et surfaces
INF2705 Infographie
11-&=
Courbes "-$plines
)finition de la plage de support pour c4aque fonction de base:
!a plage de param5tre doit 0tre diEise en interEalles- et c4aque
fonction de base est non-nulle sur un ou plusieurs interEallesH
Ces interEalles- pour une fonction donne- ne reprsentent pas
ncessairement toute la plage du param5tre de la courbeH
t
t=u
0
t=u
1
t=u
2
t=u
3
t=u
4
N
1
N
4
N
2
N
3
3 0 1
' po'r 0 ) ( u t t N
4 0 2
' po'r 0 ) ( u t t N
4 0 3
' ' po'r 0 ) ( t t N
4 1 4
po'r 0 ) ( u t u t N
+ordre D*7,
INF2705 Courbes et surfaces
INF2705 Infographie
11-&>
Courbes "-$plines
)finition de la plage de support pour c4aque fonction de base:
@n dfinit le vecteur nodal comme le Eecteur des +
/
- c(est-6-dire des
positions de dbut ou de fin des supports compacts des fonctions de
baseH
!a construction des fonctions de base pour les "-$plines repose sur la
spcification de deux informations:
!(ordre L des fonctions 6 construire +degr des polynmes 2 1,
!e Eecteur nodal +les +
/
,
INF2705 Courbes et surfaces
INF2705 Infographie
11-71
Courbes "-$plines
)finition des fonctions de base 6 partir du Eecteur nodal:
!es fonctions de base sont dfinies de faLon rcursiEe 6 l(aide de
l(algorit4me suiEant +algorit4me de Cox-de "oor,:
Une fonction de l(ordre L est dfinie 6 partir de deux fonctions de
l(ordre L-1H
( )
( ) ( ) ( ) t N
u u
t u
t N
u u
u t
t N
u t u
t N
k i
i k i
k i
k i
i k i
i
k i
i i
i
1 , 1
1
1 ,
1
,
1
1 ,


sinon 0
si 1

+
+ +
+

+
+

'

INF2705 Courbes et surfaces


INF2705 Infographie
11-71
Courbes "-$plines
)finition des fonctions de base 6 partir du Eecteur nodal pour n
points de contrle:
Fuisque l(on perd 1 fonction c4aque fois que l(on l5Ee l(ordre de 1- il
faut construire n+L fonctions 6 l(ordre 1 pour obtenir n fonctions 6
l(ordre LH )onc- i( f*+t *+ 9B%*rt n+L nM+9s 9*ns (e 7eAte+r n59*(.
!a somme des fonctions de base doit 0tre 1 pour toute Ealeur Ealide du
param5tre:
!a %(*'e 7*(i9e 9+ %*r*m@tre est ainsi du L
i5me
nMud au +n+1,
i5me

nMud- c(est-6-dire la plage pour laquelle L fonctions sont
simultanment dfinies: les L-1 premiers interEalles et les L-1 derniers
interEalles sont exclusH

N
i
t =1
INF2705 Courbes et surfaces
INF2705 Infographie
11-72
Courbes "-$plines
)finition des fonctions de base 6 partir du Eecteur nodal:
@rdre D*& + n*7 et n2D*< ,
Zecteur nodal * Q +
1
- +
1
- +
2
- +
&
- +
7
- +
:
- +
;
R
.nterEalle de Ealidit du param5tre pour la courbe: +
2
\ t \ +
7
H
t
t=u
0
t=u
1
t=u
2
t=u
3
t=u
6
t=u
4
t=u
5
k(1
k(2
k(3
INF2705 Courbes et surfaces
INF2705 Infographie
11-7&
Courbes "-$plines
)finition des fonctions de base 6 partir du Eecteur nodal:
@rdre D*& +n*7- < noeuds,
Zecteur nodal * Q +
1
- +
1
- +
2
- +
&
- +
7
- +
:
- +
;
R +uniforme- priodique,
.nterEalle de Ealidit du param5tre pour la courbe: +
2
\ t \ +
7
PBri59i&+e car lIinterEalle de Ealidit nIest pas de +
0

6 +
N

" #a courbe ne se rend pas aux deux extrmits
INF2705 Courbes et surfaces
INF2705 Infographie
11-77
Courbes "-$plines
)finition des fonctions de base 6 partir du Eecteur nodal:
@rdre D*& +n*7- < noeuds,
Zecteur nodal * Q +
1
- +
1
- +
1
- +
1
- +
2
- +
2
- +
2
R +uniforme- ouEert,
.nterEalle de Ealidit du param5tre pour la courbe: +
1
\ t \+
2
G+7ert car lIinterEalle de Ealidit est de +
0

6 +
2
" !a courbe rend aux deux extrmits
!a courbe "-$plinaire est constitue de deux segments de parabole
u
1
u
0
u
2
INF2705 Courbes et surfaces
INF2705 Infographie
11-7:
Courbes "-$plines
)finition des fonctions de base 6 partir du Eecteur nodal:
@rdre D*7 +n*7- = noeuds,
Zecteur nodal * Q +
1
- +
1
- +
1
- +
1
- +
1
- +
1
- +
1
- +
1
R +uniforme- ouEert,
.nterEalle de Ealidit du param5tre pour la courbe: +
1
\ t \ +
1
!a courbe "-$plinaire est constitue d(un segment de courbe cubique
$i n * D et si le Eecteur nodal est ouEert +le premier nMud et le dernier
nMud sont rpts D fois,- la "-$pline deEient une courbe de "#ier]
u
0
u
1
INF2705 Courbes et surfaces
INF2705 Infographie
11-7;
C4oix dIun Eecteur de Ealeurs nodales
Vecteur nodal uniforme ouvert
!es Ealeurs extrmales: degr de multiplicit gal 6 lIordre L de la
fonction de base "-splineH
!es Ealeurs internes sont rparties galementH
Zoici quelques exemples:
D * 2- n * 7 V1 1 1 2 & &W
D * &- n * : V1 1 1 1 2 & & &W
et en mode normalis
D * 2- n * 7 V1 1 1H&& 1H;; 1 1W
D * &- n * : V1 1 1 1H&& 1H;; 1 1 1W
INF2705 Courbes et surfaces
INF2705 Infographie
11-7<
Vecteur nodal non-uniforme
Un Eecteur nodal non-uniforme: Ealeurs nodales rparties non-
uniformment et les Ealeurs internes peuEent possder un
degr de multiplicit plus grand ou gal 6 1H
!e Eecteur peut 0tre ouEert ou priodiqueH Zoici quelques
exemples:
V 1 1 1 1 2 & & W Eecteur non-uniforme ouEert aEec un
degr de multiplicit 2 pour le premier
noeud interne +D*2- n*:,
V 1 1 1 2 2 & W Eecteur non-uniforme priodique aEec
un degr de multiplicit 2 pour les
noeuds internes +D*2- n*7,
C4oix dIun Eecteur de Ealeurs nodales
INF2705 Courbes et surfaces
INF2705 Infographie
11-7=
Vecteur non-uniforme normalis
!es Ealeurs internes du Eecteur nodal peuEent 0tre gnres
proportionnellement 6 la longueur de la corde entre les points P
i
H
V0 0 0 (-
1
:-
t5t
) ((-
1
+-
2
):-
t5t
) ((-
1
+-
2
+-
3
):-
t5t
) 1 1 1W
)
1
)
2
)
3
)
4
+D*&- n*;,
C4oix dIun Eecteur de Ealeurs nodales
INF2705 Courbes et surfaces
INF2705 Infographie
11-7>
$urfaces d(approximation "-$plinaires
Une surface paramtrique est une entit 6 deux param5tres- s et t
dfinie 6 partir d(une grille de points de contrle
)ans le cas d(une surface- on doit dfinir:
!a grille des points de contrle
!(ordre selon le premier param5tre +L
s
,
!(ordre selon le deuxi5me param5tre +L
t
,
!e Eecteur nodal pour le premier param5tre
!e Eecteur nodal pour le second param5tre

n
i
m
j
j i k j k i
P t N s N t s S
t s
1 1
, , ,
) ( ) ( ) , (
INF2705 Courbes et surfaces
INF2705 Infographie
11-:1
*!a facette de surface utilise est celle
dfinie par le quadrilat5re central +> fois
pour gnrer la facette compl5te,
*Flus lisse que la facette de "#ier m0me si
les m0mes points de contrle sont utiliss
X
Y
Z
P
33
P
03
P
30
P
00
$urfaces d(approximation "-$plinaires
INF2705 Courbes et surfaces
INF2705 Infographie
11-:1
Courbe B!pline
nonuniforme rationnelle:
%&RB!
INF2705 Courbes et surfaces
INF2705 Infographie
11-:2
Courbe "-$pline non-uniforme rationnelle :
%UR"$
!es "-$plines sont des outils tr5s puissants pour la modlisation
de courbes quelconques- mais elles ne permettent pas de
reprsenter exactement les coniquesH
On introduisant une coordonne 4omog5ne supplmentaire pour
c4aque point de contrle- on peut dfinir une nouEelle classe de
courbes qui sont une gnralisation des "-$plines- et qui
permettent de reprsenter de faLon exacte les coniques: les
%UR"$ +Non-Uniform Rational -!plines,H
!es "-$plines sont ainsi des %UR"$ pour lesquelles la
coordonne 4omog5ne de c4acun des points de contrle est 1H
INF2705 Courbes et surfaces
INF2705 Infographie
11-:&
%UR"$
On introduisant une coordonne 4omog5ne pour c4aque point- il
faut maintenant diEiser par la coordonne 4omog5ne aEant de
tracer +si ,
!es fonctions de base ne sont plus des polynmes- mais des
fonctions rationnelles:
aEec:
1 h
( )
( )
( )
( )
( )
( )

,
_


n
i
i k i i
n
i
n
j
k j j
k i i
n
i
k i i
n
i
i k i i
P t R P
t N h
t N h
t N h
P t N h
t C
1
,
1
1
,
,
1
,
1
,







s r#tionelle +#se de ,ontions les
ontr!le de point -#&'e . #ssoi% poids le
/plin#ires 0 1 +#se de ,ontions les
,
,
k i
i
k i
R
h
N
INF2705 Courbes et surfaces
INF2705 Infographie
11-:7
%UR"$ 3 .nterprtation gomtrique
X
Y
12h
h(1
Pro3etion s'r le pl#n -(1
INF2705 Courbes et surfaces
INF2705 Infographie
11-::
%UR"$ 3 .nfluence du poids

Y
1
2
< h
1
2
h
1
2
> h
P
1
P
2
P
3
INF2705 Courbes et surfaces
INF2705 Infographie
11-:;
%UR"$ 3 Reprsentation d(un cercle
P
1
( P
4
P
2
P
3
P
4
P
5
P
6
1
) 60 os(
4 5 3 1
6 4 2


h h h h
h h h
INF2705 Courbes et surfaces
INF2705 Infographie
11-:<
?anipulation des %UR"$ dans @penA!
A!U offre une interface %UR"$ qui permet de manipuler des
courbes et des surfaces %UR"$ dans @penA!
'(+,e'in8+r7e() ou '(+,e'in1+rf*Ae()
'(+N+rbs8+r7e() ou '(+N+rbs1+rf*Ae() pour gnrer et faire le
rendu d(une courbe ou d(une surface
'(+0n98+r7e() ou '(+0n91+rf*Ae()
'(0n*b(e(G-.>H2G.NG3)>-) permet de gnrer les normales
aux sommets automatiquementH
'(+NeON+rbs3en9erer() permet de crer un pointeur sur un ob/et
de type %UR"$H
'(+N+rbsPr5%erty() permet de c4oisir la Ealeurs des param5tres de
rendu tels que la taille maximale des lignes ou des polygonesH
'(+N+rbs8*((b*AL() permet de grer les erreursH
INF2705 Courbes et surfaces
INF2705 Infographie
11-:=
8Ealuation dIune %UR"$
8tapes
Crer un ob/et %urbs aEec '(+NeON+rbs3en9erer()4
$i ncessaire- dfinir les caractristiques de la courbe + paisseur du trait-
XH , aEec '(+N+rbsPr5%erty()4
Onregistrer une fonction de rappel en cas d (erreur aEec
'(+N+rbs8*((b*AL()4
Commencer la courbe ou surface aEec '(+,e'in8+r7e() ou
'(+,e'in1+rf*Ae()4
Anrer la courbe ou la surface aEec '(+N+rbs8+r7e() ou
'(+N+rbs1+rf*Ae()4
Cerminer la courbe ou la surface aEec '(+0n98+r7e() ou '(+0n91+rf*Ae()4
INF2705 Courbes et surfaces
INF2705 Infographie
11-:>
Crer un ob/et %urbs aEec '(+NeON+rbs3en9erer()4
G-Hn+rbsGbj CIi(s = '(+NeON+rbs3en9erer()4
Onregistrer une fonction de rappel en cas d(erreur aEec
'(+N+rbs8*((b*AL()4
'(+N+rbs8*((b*AL( Ii(s, G-H.033G3, N+rbs0rre+r )4
75i9 N+rbs0rre+r( G-en+m 859e0rre+r )
<
A5nst G-+byte C0rre+r = '(+0rr5r1trin'( 859e0rre+r )4
%rintf( P0rre+r N+rbs Q Rs SnP, 0rre+r )4
=
8Ealuation dIune %UR"$
INF2705 Courbes et surfaces
INF2705 Infographie
11-;1
Commencer la courbe ou surface aEe '(+,e'in8+r7e()4
75i9 '(+,e'in8+r7e ( G-Hn+rbsGbj Cn5bj )4
Anrer la courbe ou la surface aEec '(+N+rbs8+r7e()4
'(+N+rbs8+r7e ( G-Hn+rbsGbj C n5bj, :: Gbjet N+rbs
G-int +Ln5t.A5+nt, :: 2*i((e 9+ 7eAte+r n59*(
G-f(5*t C+Ln5t, :: !eAte+r n59*(
G-int +.stri9e, :: /nArBment entre (es x
G-f(5*t CAt(*rr*y, :: P5ints 9e A5ntrD(e
G-int +5r9er, :: Gr9re 9e (* s%(ine
G-en+m ty%e)4 :: G-.)>P1.!0320E.3 5+
G-.)>P1.!0320E.
Cerminer la courbe ou la surface aEec '(+0n98+r7e()4
75i9 '(+0n98+r7e( G-Hn+rbsGbj Cn5bj )4
8Ealuation dIune %UR"$
INF2705 Courbes et surfaces
INF2705 Infographie
11-;1
Oxemple
75i9 >ffiA;erIi(s1( P5intF.2 C%ts, int n )
<
A5nst int Gr9re = 4
G-f(5*t !eAte+rN59*(T U = < 0.0, 0.0, 0.0, 0.0,
1.0, 1.0, 1.0, 1.0 =4
G-Hn+rbsGbj CIi(s = '(+NeON+rbs3en9erer()4
'(+N+rbs8*((b*AL( Ii(s, G-H.033G3, N+rbs0rre+r )4
'(+,e'in8+r7e( Ii(s )4
'(+N+rbs8+r7e( Ii(s, Gr9re + n,
!eAte+rN59*(, ,
(G-f(5*t C) V%tsT0U, Gr9re,
G-.)>P1.!0320E.3 )4
'(+0n98+r7e( Ii(s )4
=
8Ealuation dIune %UR"$
INF2705 Courbes et surfaces
INF2705 Infographie
11-;2
j Earie de 1 6 n + L + 1H

1
1
,
) ( ) (
n
i
k i i
u R P u P

( )
( ) ( ) ( )
N u
u u u
N u
u u
u u
N u
u u
u u
N u
i
i i
i k
i
i k i
i k
i k
i k i
i k
,
, , ,
1
1
1
1
1
1 1
1
0

'

+
+

+
+ +
+

sinon

0 2 + u n k
u
j k
j k k j n
n k j n
j

+ < +
+ > +

'

0
1 1
2 1
si
si
si
8Ealuation dIune %UR"$
INF2705 Courbes et surfaces
INF2705 Infographie
11-;&
8tapes
Oxactement les m0mes que pour une "-spline sauf que certains points
P
i
sont multiplis par la coordonnes ;
i
afin d (augmenter le poids de
ces pointsH
Far exemple- P
1
* +x
1
- y
1
- #
1
- 1,U
P
2
* +x
2
(- y
2
(- #
2
(- ;
2
, * +x
2
T ;
2
- y
2
T ;
2
- #
2
T ;
2
- ;
2
,U
P
&
* +x
&
(- y
&
(- #
&
(- ;
&
, * +x
&
T ;
&
- y
&
T ;
&
- #
&
T ;
&
- ;
&
,U
P
7
* +x
7
- y
7
- #
7
- 1,U
8Ealuation dIune %UR"$
INF2705 Courbes et surfaces
INF2705 Infographie
11-;7
Oxemple
75i9 >ffiA;erIi(s2( P5intF.2 C%ts, int n)
<
A5nst int Gr9re = 4
G-f(5*t !eAte+rN59*(T U = < 0.0, 0.0, 0.0, 0.0,
1.0, 1.0, 1.0, 1.0 =4
G-Hn+rbsGbj CIi(s = '(+NeON+rbs3en9erer()4
'(+N+rbs8*((b*AL( Ii(s, G-H.033G3, N+rbs0rre+r )4
'(+,e'in8+r7e( Ii(s )4
'(+N+rbs8+r7e( Ii(s, Gr9re + n,
!eAte+rN59*(, ,
(G-f(5*t C) V%tsT0U, Gr9re,
G-.)>P1.!0320E. )4
'(+0n98+r7e( Ii(s )4
=
8Ealuation dIune %UR"$
INF2705 Courbes et surfaces
INF2705 Infographie
11-;:

Oxemple pour 7 points et


pour P
2
et P
&
- ; = 1, 3, W,
X, Y, 11, 13, 1W,1X,1Y4

Zecteur nodal
H= T0, 0, 0, 0, 1, 1, 1, 1U
P
1
P
2
P
&
P
7
8Ealuation dIune %UR"$
INF2705 Courbes et surfaces
INF2705 Infographie
11-;;
Zecteur nodal
H= T0, 0, 1, 1, 2, 2, 3, 3U
Zecteur nodal
H= T0, 1, 2, 3, , W, N, XU
8Ealuation dIune %UR"$
INF2705 Courbes et surfaces
INF2705 Infographie
11-;<
Zecteur nodal
H= T0, 0, 0.1, 0.1, 0.Y, 1, 1, 1U
8Ealuation dIune %UR"$