Courbes et surfaces. Algorithmique Graphique et Modélisation. Séverine Dubuisson. 20 mars 2007

Documents pareils
Programmation linéaire

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

Les algorithmes de base du graphisme

Chapitre 5 : Flot maximal dans un graphe

05/09/2015. M Ponctualité : CM TD TP & Projet Æ En cas d absence : récupérer!!! 3 05/09/2015

F411 - Courbes Paramétrées, Polaires

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Fonctions de plusieurs variables

Chapitre 2 Le problème de l unicité des solutions

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Deux disques dans un carré

Fonctions de deux variables. Mai 2011

Architecture des Systèmes d Information Architecture des Systèmes d Information

Projet de Traitement du Signal Segmentation d images SAR

Chp. 4. Minimisation d une fonction d une variable

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Formats d images. 1 Introduction

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Résolution d équations non linéaires

Resolution limit in community detection

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Sujet 4: Programmation stochastique propriétés de fonction de recours

modélisation solide et dessin technique

Chapitre 2 : Caractéristiques du mouvement d un solide

3 Approximation de solutions d équations

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Construction d un cercle tangent à deux cercles donnés.

Analyse en Composantes Principales

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

Licence à distance Chapitre V : Equations différentielles. Méthodes numériques à un pas.

Correction du baccalauréat ES/L Métropole 20 juin 2014

Initiation à l algorithmique

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Table des matières. I Mise à niveau 11. Préface

ÉVALUATION FORMATIVE. On considère le circuit électrique RC représenté ci-dessous où R et C sont des constantes strictement positives.

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Master IMEA 1 Calcul Stochastique et Finance Feuille de T.D. n o 1

Méthode : On raisonnera tjs graphiquement avec 2 biens.

Plus courts chemins, programmation dynamique

Cours d Analyse. Fonctions de plusieurs variables

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Chapitre 6. Fonction réelle d une variable réelle

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Calcul différentiel. Chapitre Différentiabilité

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

TD1 Signaux, énergie et puissance, signaux aléatoires

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Chapitre 0 Introduction à la cinématique

Rappels sur les suites - Algorithme

Quantification Scalaire et Prédictive

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Définitions. Numéro à préciser. (Durée : )

TP : Gestion d une image au format PGM

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Continuité et dérivabilité d une fonction

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

Repérage d un point - Vitesse et

Systèmes de transmission

Programme de la 1ère année

Chapitre 1 Régime transitoire dans les systèmes physiques

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS. R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr

Aide - mémoire gnuplot 4.0

IV- Equations, inéquations dans R, Systèmes d équations

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Value at Risk. CNAM GFN 206 Gestion d actifs et des risques. Grégory Taillard. 27 février & 13 mars 20061

TD : Codage des images


ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Programmation Linéaire - Cours 1

Echantillonnage Non uniforme

Recherche dans un tableau

TP Blender n 2 : Importation d un modèle SketchUp et animation

Circuits RL et RC. Chapitre Inductance

SECURIT GSM Version 2

Jean-Philippe Préaux

CAPTEURS - CHAINES DE MESURES

TP N 57. Déploiement et renouvellement d une constellation de satellites

Chapitre 3. Les distributions à deux variables

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Modélisation et Simulation

Visualisation Scientifique 3D

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Cours 7 : Utilisation de modules sous python

Les nouveautés de Femap 11.1

TSTI 2D CH X : Exemples de lois à densité 1

Algorithmique et Programmation

Optimisation Discrète

Automatique Linéaire 1 Travaux Dirigés 1A ISMIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Transcription:

Algorithmique Graphique et Modélisation 20 mars 2007

Plan du cours 1 Introduction 2 Modèles polygonaux 3 de Bézier 4 Splines, nurbs 5 Modèles fractals

Les courbes et les surfaces sont présentes dans la majorité des applications faisant intervenir des images La plupart des scènes réelles ou virtuelles sont composées de courbes ou de surfaces Besoin de représenter les courbes et les surfaces dans deux cas : Modélisation à partir d un modeleur et sur la base d une description mathématique ou de manière interactive Modélisation à partir de données issues de mesures, de capteurs ou d images, en général des points de l espace l objet est modélisé par approximations (modèles mathématiques simples)

Principe des courbes polygonales Stocker un ensemble discret de points de la courbe et approximer la courbe entre ces points, par des segments de droites Représentations très répandues car simples pour x = 0 à x max faire tracer(x,f (x), x + ɛ x, f (x + ɛ x ), valeur) fin pour

Principe des surfaces polygonales Stocker un ensemble discret de points de la surface et approcher la surface entre ces points, par des facettes polygonales Maillage polygonal : collection de sommets, côtés et polygones telle qu un côté est partagé par deux polygones au plus Problème : choisir une représentation adéquate, pour le stockage externe (dans un fichier) et interne (en mémoire) Quelles informations stocker et comment?

Représentation des surfaces polygonales Plusieurs représentations sont possibles Le choix se fait en fonction des besoins (coûts en espace et en temps) Les opérations typiques sur les maillages sont : Trouver les côtés incidents à un sommet Trouver les voisins d un sommet Trouver les polygones partageant un côté ou un sommet Trouver les côtés d un polygone Stocker en interne le maximum d informations pour éviter des calculs répétitifs (espace mémoire important) Compromis entre coût mémoire et coût en temps

Représentation en mémoire des surfaces polygonales Représentation explicite Un polygone est représenté par une structure P {(x 1, y 1, z 1 ), (x 2, y 2, z 2 ), (x 3, y 3, z 3 )} Deux sommets successifs représentent un côté Avantages / Inconvénients Mauvaise utilisation de l espace : sommets partagés dupliqués Difficulté pour établir des relations (côtés incidents,...)

Représentation en mémoire des surfaces polygonales Pointeurs sur une liste de sommets Sommets stockés dans une table : S = {S 1, S 2,..., S n } = {(x 1, y 1, z 1 ), (x 2, y 2, z 2 ),..., (x n, y n, z n )} Polygone défini par une liste d indices (ou de pointeurs) sur des sommets P = {(1, 2, 3), (1, 3, 4),...} Avantages / Inconvénients Sommets stockés une seule fois Difficulté pour établir des relations

Représentation en mémoire des surfaces polygonales Pointeurs sur une liste de côtés Sommets stockés dans une table : S = {S 1, S 2,..., S n} = {(x 1, y 1, z 1 ), (x 2, y 2, z 2 ),..., (x n, y n, z n)} Côtés stockés dans une table et définis par deux pointeurs sur des sommets et deux pointeurs sur des polygones : C = {C 1, C 2, C 3,...} = {(&S 1, &S 2, &P 1, ), (&S 2, &S 3, &P 1, ), (&S 1, &S 3, &P 1, &P 2 ),...} Polygones définis par une liste de pointeurs sur des côtés : C = {P 1, P 2,...} = {(&C 1, &C 2, &C 3 ), (&C 3, &C 4, &C 5 ),...}

Représentation en mémoire des surfaces polygonales Avantages / Inconvénients : pointeurs sur une liste de côtés Utilisation optimale de l espace mémoire : seuls des indices sont manipulés Les polygones partageant un côté sont identifiés Difficile de connaître les voisins d un sommet donné, les côtés incidents à un sommet,... Stockage d informations supplémentaires si nécessaire

Stockage des surfaces polygonales Format OFF Format minimal mais efficace et simple à gérer Possibilité de rajouter des informations pour chaque sommet : normale à la surface, couleurs,... Exemple OFF # début du f i c h i e r Nb sommets Nb polygones Nb cotes # nombres e n t i e r s # l e s coordonnées des sommets ( nombres r é e l s ) x1 y1 z1 x2 y2 z2 # pour chaque polygone : nb sommets, i n d i c e de chaque sommet # dans l a l i s t e precedente 3 2 1 3 4 20 12 11 65

Stockage des surfaces polygonales Format VRML Nécessite en plus la description des propriétés de la surface Format complet, beaucoup de possibilités : animation,... mais plus difficile à gérer (lecture, écriture) Format de description de scènes 3D Exemple Coordinate3 { p o i n t [ 2.25 3.11 0.35, 2.17 3.07 0.52,... ] } IndexedFaceSet { coordindex [ 0, 1, 2, 2, 1, 3, 2, 4, 4, 1,... ] }

Les courbes paramétriques Les approximations polygonales sont des approximations linéaires par morceaux (1er degré) Nécessité d un grand nombre de points pour obtenir une bonne précision Une autre approche consiste à utiliser des modèles d ordre supérieur pour représenter les courbes et surfaces Les représentations paramétriques répondent à ce besoin : Apportent un gain en espace mémoire Possibilité de manipulations

Les courbes paramétriques Définition d une courbe paramétrique Une courbe paramétrique est définie par : x = x(t) y = y(t) z = z(t) On cherche à interpoler ou approcher une courbe à partir d un nombre fini de points, soit des courbes de la forme : P(t) = (x(t), y(t), z(t)) = n f i (t)p i avec 0 t 1 i=0

Courbes de Bézier Définition générale P(t) = n P i B i,n (t) 0 t 1 i=0 B i,n (t) = C n i t i (1 t) n i C n i = n! i!(n i)! B i,n sont les polynômes de Bernstein P i sont les points de contôle n est le nombre de points de contrôle utilisés (degré de la courbe + 1)

Polynômes de Bernstein Propriétés Elles sont positives : B i,n (t) 0 i, n et 0 t 1 Elles forment une partition de l unité : n i=0 B i,n(t) = 1 0 t 1 B 0,n (0) = B 1,n (1) = 1 B i,n (t) possède exactement un maximum dans l intervalle [0, 1], et c est la valeur u = i n

Polynômes de Bernstein Propriétés Symétrie : pour tout n, l ensemble des polynômes B i,n (t) est symétrique par rapport à u = 1 2 B i,n (t) = B n i,n (1 t) Par définition, B i,n (t) = 0 i < 0 ou i > n Définition par récurrence : B i,n (t) = (1 t)b i,n 1 (t) + tb i 1,n 1 (t)

Propriétés des courbes de Bézier La courbe est à l intérieur de l enveloppe convexe des points de contrôles La courbe commence par le point P 0 et se termine par le point P n mais ne passe pas a priori par les autres points de contrôle qui déterminent cependant l allure générale de la courbe P 0 P 1 est tangent à la courbe en P 0 et P n 1 P n est tangent à la courbe en P n Une courbe de Bézier est infiniment dérivable La courbe de Bézier est un segment si et seulement si les points de contrôle sont alignés

Propriétés des courbes de Bézier Chaque restriction d une courbe de Bézier est aussi une courbe de Bézier Un arc de cercle (ou un cercle) ne peut pas être décrit par une courbe de Bézier, quel que soit son degré Le contrôle de la courbe est global : modifier un point de contrôle modifie toute la courbe, et non pas un voisinage du point de contrôle Pour effectuer une transformation affine de la courbe, il suffit d effectuer la transformation sur tous les points de contrôle La projection d une courbe de Bézier ne s obtient pas à partir des projections des points de contrôle, dans le cas général

Utilisations des courbes de Bézier Composent l outil de la base du dessin vectoriel qui repose sur la transcription mathématique des objets Les plus importantes courbes de Bézier, sont les cubiques, utilisées : En informatique pour le graphisme Dans les systèmes de synthèse d images (PostScript, Metafont, The GIMP ) pour dessiner des courbes lisses joignant des points ou des polygones de Bézier Les textes sont définis par des courbes de Bézier (mise en page complexe, gestion de blocs de textes, habillages, vérification orthographique) Les fontes TrueType utilisent des courbes de Bézier quadratiques plus simples

Courbe de Bézier linéaire (degré 1) Deux points de contrôle : interpolation linéaire (barycentre) P(t) = (1 t)p 0 + tp 1 Il s agit du segment [P 0, P 1 ]

Courbe de Bézier quadratique (degré 2) Trois points de contrôle : P(t) = (1 t) 2 P 0 + 2t(1 t)p 1 + t 2 P 2 P(t) = t 2 (P 0 2P 1 + P 2 ) + t( 2P 0 + 2P 1 ) + P 0 P(t) = ( t 2 t 1 ) 1 2 1 P 0 2 2 0 P 1 1 0 0 P 2

Propriétés d une courbe de Bézier quadratique A pour extrémités P 0 et P 2 et passe par K = milieu(i, J), avec I = milieu(p 0, P 1 ) et J = milieu(p 1, P 2 ) Est tangente en P 0 à (P 0, P 1 ), en P 2 à (P 1, P 2 ), en K à (I, J) Est l union de deux courbes de Bézier quadratiques : l une de points de contrôle P 0, I, K et l autre de points de contrôle K, J, P 2

Définition récursive d une courbe de Bézier quadratique Casteljau I est le barycentre de [P 0, P 1 ] : I = (1 t)p 0 + tp 1 J est le barycentre de [P 1, P 2 ] : J = (1 t)p 1 + tp 2 K est le barycentre de [I, J] : K = (1 t)i + tj Donc on a l équation de la courbe de Bézier : P(t) = (1 t)i + tj = (1 t) ((1 t)p 0 + tp 1 ) + t ((1 t)p 1 + tp 2 ) = (1 t 2 )P 0 + 2t(1 t)p 1 + t 2 P 2

Courbe de Bézier cubique (degré 3) Quatre points de contrôle : P(t) = (1 t) 3 P 0 + 3t(1 t) 2 P 1 + 3t 2 (1 t)p 2 + t 3 P 3 P(t) = t 3 ( P 0 + 3P 1 3P 2 + P 3 ) + t 2 (3P 0 6P 1 + 3P 2 ) + t( 3P 0 + 3P 1 ) + P 0 0 1 0 1 P(t) = ` t 3 t 2 t 1 1 3 3 1 P 0 B 3 6 3 0 C B P 1 C @ 3 3 0 0 A @ P 2 A 1 0 0 0 P 3

Propriétés d une courbe de Bézier cubique A pour extrémités P 0 et P 3 et passe par S 0 ( milieu des milieux des milieux ) Est tangente en P 0 à (P 0, P 1 ), en P 3 à (P 2, P 3 ), en S 0 à (R 2, S 1 ) Est l union de deux courbes de Bézier cubiques : l une de points de contrôle R 0, R 1, R 2, R 3 et l autre de points de contrôle S 0, S 1, S 2, S 3

Définition récursive d une courbe de Bézier cubique Casteljau A est le barycentre de [P 0, P 1 ] : A = (1 t)p 0 + tp 1 B est le barycentre de [P 1, P 2 ] : B = (1 t)p 1 + tp 2 C est le barycentre de [P 2, P 3 ] : C = (1 t)p 2 + tp 3 D est le barycentre de [A, B] : D = (1 t)a + tb E est le barycentre de [B, C] : E = (1 t)b + tc M est le barycentre de [D, E] : M = (1 t)d + te Donc on a l équation de la courbe de Bézier : P(t) = (1 t)d + te = (1 t 3 )P 0 + 3t(1 t) 2 P 1 + 3t 2 (1 t)p 2 + t 3 P 3

Pour résumer... La pondération des points de contrôle dans une courbe de Bézier à 3 points de contrôle est donnée par les 3 polynômes de Bernstein suivants : B 0,2 (t) = (1 t) 2 B 1,2 (t) = 2t(1 t) B 2,2 (t) = t 2 La pondération des points de contrôle dans une courbe de Bézier à 4 points de contrôle est donnée par les 4 polynômes de Bernstein suivants : B 0,3 (t) = (1 t) 3 B 1,3 (t) = 3t(1 t) 2 B 2,3 (t) = 3t 2 (1 t) B 3,3 (t) = t 3

Courbe de Bézier de degré supérieur à 4 Une courbe de Bézier à n points de contrôle se définit ainsi comme une construction récursive de barycentres dans les rapports (1 t) et t [ Le segment M k i (t) M k M k 1 i ] (t), M k 1 i+1 (t)] est tangent à la courbe en { i (t) = (1 t)m k 1 i (t) + tm k 1 k = 0, 1,..., n i+1 (t) i = 0, 1,..., n k

Définition de Casteljau Cas d une courbe à 5 points de contrôle

Polygonalisation des courbes de Bézier Polygonalisation d une courbe de Bézier en n pas avec un paramètre t défini sur [a, b]. Le paramètre t varie de a à b avec un pas de b a n

Continuité des courbes de Bézier C 0 continuité de classe 0 : on fait coïncider les points extrêmes C 1 continuité de classe 1 : vérifiée si les points extrêmes sont confondus et situés au milieu du point qui les précède et de celui qui les suit

Polygonalisation des courbes de Bézier // Algorithme : n pas avec a t b // Initialisation t = a P = Bezier(t) pas = (b a)/n // Boucle de traçage pour i = 1 to n faire t = t + pas P = Bezier(t ) Segment(P, P ) t = t P = P fin pour

En OpenGL glenable(gl MAP1 VERTEX 3) ; active l évaluateur de Bézier 1D pour des sommets 3D GLfloat ctrlpoints[4][3] = {{ -1.0, -1.0, 0.0}, { -1.0, 0.0, 0.0},{ 1.0, 0.0, 0.0}, { 1.0, 1.0, 0.0}} ; coordonnées des points de contrôle glmap1f(gl MAP1 VERTEX 3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]) ; définit un évaluateur 1D glbegin(gl LINE STRIP) ; for(i=0 ; i<=n ; i++) glevalcoord1f((glfloat)i/((float)n)) ; glend() ;

Inconvénients des courbes de Bézier Si on a plus de 4 (16) points de contrôles, il faut générer 2 (4) courbes (surfaces) Les tangentes sont définies aux extrémités de la courbe de Bézier, mais pas la dérivée d ordre 2 points d inflexions impossibles Si un point de contrôle change légèrement de position, l ensemble de la courbe (surface) est affectée Une alternative : les Splines

Surfaces de Bézier Définition Soient (n + 1) (m + 1) poins de contrôle P i,j avec 0 i n et 0 j m La surface de Bézier a pour équation : P(t) = n m P i,j B i,n (u)b j,m (v) 0 u, v 1 i=0 j=0 Une courbe peut être perçue comme une valeur particulière de la surface dans laquelle un paramètre est fixé. Ainsi C(u) est une valeur de la surface S(u, v) où v est fixé

Surfaces de Bézier

Surfaces de Bézier cubiques Une surface de Bézier cubique (n = m = 3) est définie par 16 points de contrôle P i,j, avec i [1... 4] et j [1..., 4] 4 points M k (t) (k [1... 4]) sur les courbes de Bézier cubiques définies par P k,j (j [1... 4]) Bords de la surface de Bézier Le point N(t, s) sur la courbe de Bézier définie par les quatre points M k (t) précédents

Surfaces de Bézier cubiques Pour un patch de degré n, on utilise (n + 1) 2 de points de contrôle M i,j On construit récursivement les points du patch par interpolation bilinéaire sur les paramètres u et v

Surfaces de Bézier cubiques

Surfaces de Bézier cubiques En bleu : le maillage de contrôle formé par les 16 points P ij En rouge : les bords du carreau de surface de Bézier En pointillés verts les courbes de Bézier en u (resp. en v) qui sont définies par 4 points de contrôle intermédiaires, pour v (resp. u) fixé. Ces courbes appartiennent au carreau de surface

Surfaces de Bézier cubiques P(s, t) = ( s 3 s 2 s 1 ) P 0 P 1 P 2 P 3 P 4 P 5 P 6 P 7 P 8 P 9 P 10 P 11 P 12 P 13 P 14 P 15 1 3 3 1 3 6 3 0 3 3 0 0 1 0 0 0 1 3 3 1 3 6 3 0 3 3 0 0 1 0 0 0 t 3 t 2 t 1

Surfaces de Bézier cubiques On peut envisager un patch comme un ensemble de courbes de Bézier (en u) dont les points de contrôles P i (v) parcourent des courbes de Bézier (en v)

Propriétés au bord Une surface de Bézier passe par les quatre points de contrôles aux coins Les quatre bords d une surface de Bézier sont des courbes de Bézier dont les points de contrôle sont M 0,j, M m,j, M i,0 ou M i,n Les normales aux coins de la surface sont les produits vectoriels des tangentes aux courbes des bords

En OpenGL glenable(gl MAP2 VERTEX 3) ; active l évaluateur de Bézier 2D pour des sommets 3D GLfloat ctrlpoints[4][3][3] =... ; coordonnées des points de contrôle glmap2f(gl MAP2 VERTEX 3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]) ; définit un évaluateur 2D glbegin(gl LINE STRIP) ; for(i=0 ; i<=m ; i++) glevalcoord2f((glfloat)i/((float)m)) ; glend() ; glbegin(gl LINE STRIP) ; for(i=0 ; i<=n ; i++) glevalcoord2f((glfloat)i/((float)n) ; glend() ;

Splines Définition Une spline de degré n est une fonction polynomiale par morceaux de degré n qui est continue de classe C n 1 à chaque nœud Une courbe spline est définie par n + 1 points de contrôle et n + 1 fonctions de pondération : P(t) = n i=0 N i,k(t)p i t k 1 t t n+1 Les fonctions de pondération N i,k (t) sont définies sur des intervalles [t i, t i+1 ], T = (t 0, t 1,..., t n k ) est appelé vecteur de points nodaux Les fonctions de pondération sont des polynômes d ordre k 1

B-Splines Définition : une courbe B-Spline d ordre k est définie par n + 1 points de contrôle P i : P 0,..., P n n k + 1 nœuds t 0 t 1... t n k n + 1 fonctions de pondération N i,k, ou polynômes B-splines, définies récursivement sur des intervalles [t i, t i+k ]

B-Splines Formultaion mathématique N i,1 (t) = N i,k (t) = { 1 sur [ti, t i+1 ] 0 ailleurs t t i N i,k 1 (t) + t i+k t N i+1,k 1 (t) t i+k 1 t i t i+k t i+1

B-Splines

Constructions de B-Splines d ordre k On définit les intervalles [t 0, t 1 ]... [t n+k 1, t n+k ] Pour simplifier, on choisit : t 0 = 0, t 1 = 1, On écrit la formulation récursive N i,k (t) On calcule sur chaque intervalle [t i, t i+k ] la courbe N i,k (t)

B-Splines d ordre k = 1 N 0,1 (t) = { 1 sur [0, 1] 0 ailleurs

B-Splines d ordre k = 2 Définition récursive générale : N i,2 (t) = t t i N i,1 (t) + t i+2 t N i+1,1 (t) t i+1 t i }{{} t i+2 t i+1 }{{} (1) (2) (1) : N i,1 (t) = 1 sur [t i, t i+1 ] (2) : N i+1,1 (t) = 1 sur [t i+1, t i+2 ] Définition sur [0, 2] N 0,2 (t) = t N 0,1 (t) +(2 t) N 1,1 (t) }{{}}{{} =1 sur [0,1] =1 sur [1,2]

B-Splines d ordre k = 2 N 0,2 (t) = { t sur [0, 1] 2 t sur [1, 2]

B-Splines d ordre k = 3 Définition récursive générale : N i,3 (t) = t t i N i,2 (t) + t i+3 t N i+1,2 (t) t i+2 t i t i+3 t i+1 Définition sur [0, 3] N 0,3 (t) = t 2 N 0,2(t) + 3 t }{{} 2 N 1,2(t) }{{} (1) (2)

B-Splines d ordre k = 3 Calcul de N 0,2 (t) : N 0,2 (t) = { t sur [0, 1] 2 t sur [1, 2] Calcul de N 1,2 (t) : N 1,2 (t) = (t 1) N 1,1 (t) +(3 t) N 2,1 (t) }{{}}{{} =1 sur[1,2] =1 sur[2,3]

B-Splines d ordre k = 3 N 0,3 (t) = t 2 2 sur [0, 1] t 2 + 3t 3 2 sur [1, 2] (3 t) 2 2 sur [2, 3]

Construction d une fonction de pondération à partir de splines Les fonction splines sont translatées puis combinées Sur [0, 1] : N 0,3 (t) Sur [1, 2] : N 0,3 (t) et N 1,3 (t) = N 0,3 (t 1) Sur [2, 3] : N 0,3 (t), N 1,3 (t) = N 0,3 (t 1) et N 2,3 (t) = N 0,3 (t 2) Sur [3, 4] : N 1,3 (t) = N 0,3 (t 1), N 2,3 (t) = N 0,3 (t 2) et N 3,3 (t) = N 0,3 (t 3)...

Tracé de courbes B-spline d ordre k = 3 Cas où on a 7 points de contrôle On veut tracer dans l intervalle [2, 7] Chaque fonction de pondération N i,3 est nulle hors de [i, i + 3] Dans [2, 7], on a : N(t) = N 0,3 (t)p 1 + N 1,3 (t)p 2 + N 2,3 (t)p 3 + N 3,3 (t)p 4 +N 4,3 (t)p 5 + N 5,3 (t)p 6 + N 6,3 (t)p 7

Tracé de courbes B-spline d ordre k = 3 t P 1 P 2 P 3 P 4 P 5 P 6 P 7 2.0 0.5 0.5 - - - - - 2.1 0.4 0.59 0.005 - - - - 2.2 0.32 0.66 0.02 - - - - 2.3 0.24 0.71 0.04 - - - - 2.4 0.18 0.74 0.08 - - - - 2.5 0.12 0.75 0.12 - - - - 2.6 0.08 0.74 0.18 - - - - 2.7 0.04 0.71 0.24 - - - - 2.8 0.02 0.66 0.32 - - - - 2.9 0.05 0.59 0.4 - - - - 3.0-0.5 0.5 - - - - 3.1-0.4 0.59 0.005 - - - 3.2-0.32 0.66 0.02 - - -

Tracé de courbes B-spline d ordre k = 3

Quelques propriétés des B-splines Toute courbe B-spline commence par un point sur la première arête du polygone de contrôle et est tangente a celui-ci (idem pour le dernier point) Les points intermédiaires sont des points de contrôle externes à la courbe La transformée affine d une courbe B-spline est la courbe passant par la transformée affine des points Une courbe B-spline appartient à l enveloppe convexe des points qui la contrôlent Si elle est d ordre n, elle appartient à l enveloppe convexe de n 1 points consécutifs

Courbes nurbs Nurbs : Non Uniform Rational B-Splines Une courbe nurbs de degré k est définie par : Un vecteur de nœuds T = (t 0, t 1,...) n + 1 points de contrôle P i n + 1 fonctions de pondération R i,k déduites des fonctions de pondération des B-splines N i,k au moyen de n + 1 poids w i (généralement choisis positifs stricts) : R i,k = n i=0 w ip i N i,k (t) n i=0 w in i,k (t)

Tracé de courbes

Quelques propriétés des nurbs En choisissant correctement les points de contrôle et les poids, toute conique peut être représentée exactement par une nurbs La transformée affine d une courbe nurbs est la courbe passant par la transformée des points Contrairement aux courbes B-spline, l image d une courbe nurbs par une projection est la courbe nurbs passant par la projection des points les poids doivent être recalculés en fonction de la matrice de projection En raison de ces propriétés, les nurbs sont fournies dans de nombreux logiciels d infographie

Surfaces nurbs Les surfaces nurbs s obtiennent par extension de la définition des courbes nurbs Deux vecteurs de noeuds T et S, un pour chacune des variables t et s, (m + 1) (n + 1) points de contrôle P i,j (m + 1)x(n + 1) fonctions de pondération R i,j,k déduites des fonctions de pondération des B-splines N au moyen de (m + 1)x(n + 1) poids w i,j : R i,j,k = n m i=0 j=0 w i,jp i,j N i,n (t)n j,m (s) n m i=0 j=0 w i,kn i,n (t)n j,m (s)

Surfaces nurbs

Introduction Terme issu du latin frangere et proposé en 1982 par Mandelbrot Utilisés par la communauté graphique pour décrire tout modèle irrégulier et fragmenté pour lequel les irrégularités sont conservées (on parle d auto-similarité) On génère des fonctions récursives utilisant un motif initial et un motif de remplacement Un objet est dit fractal lorsque le processus de remplacement est appliqué à l infini pour la création de l objet Les fractales sont utilisées pour modéliser des environnements naturels (montagnes, feuillages, ciel nuageux,...)

Courbes fractales Définition Pour générer une courbe fractale, on remplace à l étape i les segments du motif de l étape (i 1) par le motif de remplacement Lorsque le processus est répété à l infini, la courbe est dite auto-similaire : la courbe entière est similaire à une sous-partie d elle même

Flocon de Koch La dimension fractale d de la courbe est définie par n 1 d n : nombre de parties du motif (ici n = 4) f : facteur de diminution (ici f = 3) La dimension est donc : d = log 4 log 3 = 1.26 = f

D autres exemples

Surfaces fractales Les surfaces sont générées de manière similaires aux courbes Exemple : l algorithme de Fournier-Russel-Carpenter permet de générer des montagnes fractales. Chaque segment est subdivisé en deux et la hauteur du point milieu de chaque segment est modifiée de manière aléatoire

Surfaces fractales : montagnes

Surfaces fractales : le ciel