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