Université Joseph Fourier, Grenoble I Année / MAP/MAP TP n : les courbes de Bézier Révision du TP N Tracer la courbe paramétrée C = {(x(t),y(t)), t [a,b]} avec x(t) = sin(t) y(t) = sin(t) t [,π] Tracer la courbe paramétrée C = {(x(t),x(t)), t [a,b]} avec x(t) = sin(t) cos(t) y(t) = cos(t) sin(t) t [,π] Tracer la courbe donnée en coordonnées polaires par : { ρ(θ) = sin(θ) +(sin(θ) )/ θ [,π] Tracer la courbe donnée en coordonnées polaires par : { ρ(θ) = +εcos(nθ) θ [,π] dans les cas suivants : ε =., n =, θ [,π] ε =., n =., θ [,π] ε =., n =, θ [,π] ε =, n = π, θ [,π] ε =, n = π, θ [,π] Polynômes de Bernstein On récupérera le fichier de la fonction bernstein.sci disponible à l adresse : https ://espaces-collaboratifs-archives.grenet.fr/share/page/site/ujfueddmap/dashboard sous la rubrique Espace documentaire-documents dans le dossier Thème Courbes, puis le dossier Fichiers TP. Attention : ce fichier contenant le programme d une fonction est destiné à être utilisé, en aucun cas modifié. On rappelle la définition des polynômes de Bernstein : B n k (t) = Ck n ( t)n k t k, k =,,,,n La fonction récupérée : function xy = bernstein(n,k,ttrace) calcule pour chaque élément du vecteur ttrace la valeur du polynôme de Bernstein B n k.
Exercice : Tracer sur un même dessin les graphes de ces polynômes pour une valeur de n donnée : B (t), B (t), B (t), t [,] (t), B (t), B (t), B (t), t [,] B(t), B(t), B(t), B(t), B(t), t [,]. Courbes de Bézier On récupérera le fichier du programme bezier.sce disponible à l adresse : https ://espaces-collaboratifs-archives.grenet.fr/share/page/site/ujfueddmap/dashboard sous la rubrique Espace documentaire-documents dans le dossier Thème Courbes, puis le dossier Fichiers TP. On désire tracer la courbe : n k= avec m k = (x k,y k ), k =,,,,n. m k Bk n (t), t [,], Si on désigne par npctrl = n+ le nombre de points de contrôle, on rangera les coordonnées des points de contrôle dans un seul tableau à une ligne : de la façon suivante : MXY(),MXY(),...,MXY(*npctrl) x = MXY() y = MXY() x = MXY() y = MXY() x = MXY() y = MXY() Exercice : - En incorporant manuellement, dans le programme SCILAB récupéré, les données dans le tableau MXY, tracer des courbes : n m k Bk(t), n t [,], k= en essayant de reproduire des exemples identiques à ceux du cours. Exemple Exemple
Exemple Exemple. Entrée des points de contrôle à la souris https ://espaces-collaboratifs-archives.grenet.fr/share/page/site/ujfueddmap/dashboard sous la rubrique Espace documentaire-documents dans le dossier Thème Courbes, puis le dossier Fichiers TP : le programme courbesouris.sce la fonction saisirpoints.sci Le programme courbesouris.sce permet d entrer par des clics de souris n points de contrôle dans un rectangle (x,y) : x, y. On peut modifier le paramètre n directement dans le programme. Exercice : Tracer la courbe : n m k Bk n (t), t [,], k= en essayant de reproduire des exemples identiques à ceux du cours, puis d autres formes.. Tracer et modifier https ://espaces-collaboratifs-archives.grenet.fr/share/page/site/ujfueddmap/dashboard sous la rubrique Espace documentaire-documents dans le dossier Thème Courbes, puis le dossier Fichiers TP : le programme SCILAB courbedesign.sce Ce programme permet une saisie des points à la souris comme dans l exemple précédent. Ensuite, en cliquant sur un point de contrôle, on peut bouger le point de contrôle, afficher la nouvelle courbe, jusqu au prochain clic de la souris. On met fin au programme en cliquant en dehors du rectangle des coordonnées. Exercice : Expérimenter le programme précédent. Créer une courbe avec une boucle,...
Les polynômes de Bernstein et les courbes de Bézier quadratiques Dans cette partie on n utilise que des courbes de Bézier quadratiques, mais nous effectuerons des dessins comportant plusieurs courbes de Bézier quadratiques. https ://espaces-collaboratifs-archives.grenet.fr/share/page/site/ujfueddmap/dashboard sous la rubrique Espace documentaire-documents dans le dossier Thème Courbes, puis le dossier Fichiers TP : le programme SCILAB bezierquadratique.sce. Le programme de base On considère ici le cas n =, donc les polynômes de Bernstein : et on se donne trois points : B (t) = ( t),b (t) = t( t),b (t) = t m = (x,y ), m = (x,y ), m = (x,y ). Le programme bezierquadratique.sce trace sur un même dessin, les courbes de Bézier quadratiques, dont les points de contrôle sont groupés par dans le tableau MXY de la façon suivante : le tableau MXY est maintenant un tableau à ncourbes lignes, chaque ligne étant constituée des coordonnées des points de contrôle, avec les mêmes convention que dans la première partie du TP :. Dessiner un caractère x,y,x,y,x,y Imaginer une méthode pour tracer l image suivante en utilisant des courbes de Bézier quadratiques. On remarquera que les séquences de points de contrôle sont : (,)(,)(,) (,)(,)(,) (,)(,9)(,) (,)(,)(,) (,)(,)(,) (,)(,)(,) (,)(,)(,) (,)(,)(,) (,)(,)(,)
. Transformer le caractère Imaginer une méthode pour tracer le même caractère en penché : on pourra par exemple modifier tous les points de contrôle par la transformation suivante : (x,y) (x+ytanθ,y) que l on interprétera.. Autres exemples Transformation du caractère en penché Reproduire les dessins suivants, composés de courbes de Bézier quadratiques. 9 C C C C C C 9 em C C. Modéliser un profil A C C B C C C Modéliser le profil à l aide de courbes de Bézier quadratiques. On partira de l esquisse de la figure, et on construira manuellement un système de courbes de
Bézier quadratiques tel que celui de la figure par exemple. Une fois cette construction faite, on repèrera les coordonnées des points de contrôle, puis on procédera au tracé en utilisant le programme proposé. Figure - Esquisse Figure - De l esquisse aux points de contrôle Les courbes de Bézier cubiques (de degré ) https ://espaces-collaboratifs-archives.grenet.fr/share/page/site/ujfueddmap/dashboard sous la rubrique Espace documentaire-documents dans le dossier Thème Courbes, puis le dossier Fichiers TP : le programme SCILAB beziercubique.sce le fichier caractere.txt On traitera par exemple l ensemble de données : MXY = [ 9 9 ; ; ; ; 9 9 ; 9 ; ; ; //lignes droites ; ; ; ]; que l on récupérera dans le fichier : caractere.. Adaptation du programme Appliquer la transformation sur les points de contrôle de façon à tracer le caractère précédent en penché.