1. Trang chủ
  2. » Giáo Dục - Đào Tạo

IMPLICITATION DE SURFACES RATIONNELLES

56 28 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 0,99 MB

Nội dung

INSTITUT DE LA FRANCOPHONIE POUR L’INFORMATIQUE RAPPORT DE STAGE IMPLICITATION DE SURFACES RATIONNELLES Présenté pour l’obtention Du « Diplơme d’Etudes Professionnelles Approfondies » Préparé sous la direction de Bernard MOURRAIN, Chef du projet GALAAD - INRIA Présenté et soutenu publiquement Par Van Thoi TRAN Novembre 2004 Remerciements J’adresse toute ma gratitude mon responsable de stage, Monsieur Bernard Mourrain, pour sa disponibilité, son soutien constant et son aide précieuse durant ce stage Je voudrais également remercier chaleureusement Laurent Busé pour l’aide permanente qu’il m’a prodigué Je dois encore remercier Grégory Gatellier pour sa collaboration serrée tout au long de mon stage Merci également Olivier Ruatta pour ses conseils utiles qu’il m’a donnés J’ai le plaisir de remercier Aurélie Richard, Monique Teillaud et Vu Van Thinh pour leur accueil, leur disponibilité et leur gentillesse pendant mon séjour en France J’exprime mon entière reconnaissance envers ma famille et mes amis pour encouragements leurs soutiens, leurs aides et leurs Implicitation de surfaces rationnelles Table des matières Table des matières Table des matières Résumé Abstract Liste des figures .7 Chapitre : INTRODUCTION 1.1 Problématique 1.2 Motivation 1.3 Environnement de stage 10 Chapitre : 2.1 RESULTATS PRELIMINAIRES .11 Surface rationnelle et équation implicite .11 2.2 Méthodes d’implicitation 12 2.2.1 Implicitation exacte 12 2.2.2 Implicitation approchée 13 Chapitre : METHODES D’IMPLICITATION 14 3.1 Elimination de variables avec le résultant 14 3.1.1 Construction de Macaulay 14 3.1.2 Lien avec le problème d’implicitation 18 3.1.3 Remarques 20 3.2 Implicitation et Bézoutiens 20 3.2.1 Bézoutiens 21 3.2.2 Application l’implicitation 23 3.3 Problème d’approximation 26 3.3.1 Principe de la méthode 26 3.3.2 Mesure de l’erreur 30 Chapitre : IMPLEMENTATION 33 4.1 Mise en œuvre .33 4.1.1 Partie d’implicitation 33 4.1.2 Partie de test 34 4.1.3 Partie de connexion 34 4.1.4 Partie de visualisation 34 Van Thoi TRAN -3- Implicitation de surfaces rationnelles Table des matières 4.2 Expériences numériques .35 4.2.1 Méthodes exactes 35 4.2.2 Méthode approchée 38 Chapitre : CONCLUSION 42 Annexe 43 Références 49 Van Thoi TRAN -4- Implicitation de surfaces rationnelles Résumé Résumé Le problème d'implicitation de courbes ou de surfaces rationnelles consiste en la détermination de l'équation implicite de telles courbes ou surfaces Calculer une équation implicite est un problème important en CAO (Conception Assistée par Ordinateur) et dans beaucoup de problèmes de géométrie combinatoire Alors plusieurs méthodes sont connues pour résoudre ce problème Dans ce rapport, on va faire un tour d'horizon de différentes méthodes d’implicitation de surfaces rationnelles : résultant, Bézoutiens et complexes d'approximation L’implémentation de ces méthodes est contribuée la bibliothèque C++ SYNAPS orientée vers le calcul symbolique/numérique Mots clés : implicitation, théorie de résultants, construction de Macaulay, bézoutiens, implicitation approchée Van Thoi TRAN -5- Implicitation de surfaces rationnelles Abstract Abstract The implicitization problem for rational curves or surfaces consists of the determination of implicit equation of any curves or surfaces Calculating an implicit equation is a significant problem in CAD (Computer-Aided Design) and in many problems of combinative geometric Then several methods are known to solve this problem In this report, we will make a review of various implicitization methods for rational surfaces : resultant, Bezoutiens and approximation complexes The implementation of these methods is contributed to the library C++ SYNAPS directed towards symbolic/numeric calculation Keywords : implicitization, resultant theory, Macaulay construction, bezoutiens, approximative implicitization Van Thoi TRAN -6- Implicitation de surfaces rationnelles Liste des figures Figure : Graphe de S _24 Figure : Affichage de S1 28 Figure : Forme approchée de S1 _29 Figure : Superposition de S1 et son approximation _30 Figure : Une mauvaise approximation de S1 _31 Figure : Approchée degré _39 Figure : Approchée degré _40 Figure : Mauvaise approximation degré _41 Liste des figures Van Thoi TRAN -7- Implicitation de surfaces rationnelles INTRODUCTION Chapitre : INTRODUCTION 1.1 Problématique Un objet algébrique peut être représenté classiquement par deux manières : la première est de donner son équation implicite, et la deuxième est d’en donner une paramétrisation Ces deux méthodes ont des avantages aussi que des inconvénients Par exemple, on a la facilité de représenter une surface sous forme paramétrée, mais plus difficile de déterminer si un point de l’espace appartient ou non cette surface Par contre, ce problème est très facile de résoudre par une simple substitution si l’on a l’équation implicite de cette surface De plus, l’équation implicite peut aider tracer une courbe ou une surface au voisinage d'une singularité, calculer une autointersection d'offsets ou bien encore calculer l'intersection de courbes ou de surfaces Cependant, trouver l’équation implicite n’est pas facile ! L’existante de deux mécanismes de représentation ci-dessus se pose le problème de convertir de l’une vers l’autre Tout objet algébrique donné par une paramétrisation rationnelle admet une équation implicite, et le problème qui consiste déterminer celle-ci est appelé problème d’implicitation Le problème inverse qui consiste trouver une représentation paramétrique d’un objet algébrique donné sous forme implicite est donc appelé problème de paramétrisation Alors nous ne nous intéressons qu’ici au problème d’implicitation qui est très important dans CAO (Conception Assistée par Ordinateur) et beaucoup d’autres problèmes de géométrie combinatoire Van Thoi TRAN -8- Implicitation de surfaces rationnelles Résultat : Méthode Bezout Macaulay - A cause de grand degré de la paramétrisation (4,4), la matrice bézoutienne deviendra assez grosse, et le processus dure longtemps : près de 18 minutes - La taille de la matrice obtenue est énormément trop grande Alors le calcul de la matrice de Macaulay devenait coûteux Après 23 minutes de l’exécution, ce processus consomme plus d’un giga-octets de mémoire de la machine de test Par conséquent, il a été automatiquement coupé par le système ! o Exemples : p p (t (t S4: p2 (t0 ,t2 ) (t p Paramétrisation de degré 2, avec points bases Résultat souhaité : équation de degré Résultat : Méthode Bezout Macaulay La méthode de Macaulay donne NULL cause de la présence de points bases pour la paramétrisation Van Thoi TRAN -37- Implicitation de surfaces rationnelles IMPLEMENTATION En observant ces résultats, on voit bien que la méthode de Macaulay échoue dans la plupart de cas, soit par cause de points bases, soit par grosse de calcul Surtout elle est toujours moins efficace que le bézoutien 4.2.2 Méthode approchée Je reprends ici la surface S1 : p0 (t1 ,t2 ) = p1 S1: p p3 (t1 ,t2 ) = Paramétrisation de dégré o Premier test : * U1 = { (-0.1,0), (0.3,0.5), (0.3,-0.5), (-0.5,0.1), (0.6,-0.2), (-0.2,0.6), (-0.2,-0.2), (0.5,0.5), (-0.5,0.2), (0.7,0.5), (0.8,-0.4), (-0.4,-0.4) } * q1 = { 1, 2, } * Résultat : équation de degré Van Thoi TRAN -38- Implicitation de surfaces rationnelles IMPLEMENTATION Figure : Approchée degré Pour ce test, on voit bien que les deux images sont bien coïncidées Alors on a de bons choix de points d’approximation o Deuxième test : * U2 = { (-0.1, 0), (0.3, 0.5), (0.3, -0.5), (-0.5, 0.1), (0.6, -0.2), (-0.2, 0.6), (-0.2, -0.2), (0.5, 0.5), (-0.5, 0.2), } * q2 = { 1, 1, } * Résultat : équation de degré Van Thoi TRAN -39- Implicitation de surfaces rationnelles IMPLEMENTATION Figure : Approchée degré Même si le degré de l’équation implicite est petit, la forme d’affichage est assez bien o Troisième test : * U3 = { (-0.1, 0), (0.3, 0.5), (0.3, -0.5), (-0.5, 0.1), (0.6, -0.2), (-0.2, 0.6), (-0.2, -0.2), (-0.1, 0.3), (-0.5, 0.2), (0.7, -0.1), (0.2, -0.4), (-0.4, -0.4)} * q3 = { 1, 2, } * Résultat : équation de degré Van Thoi TRAN -40- Implicitation de surfaces rationnelles IMPLEMENTATION Figure : Mauvaise approximation degré On retrouve ici l’équation de degré car les degrés d’approximation utilisés sont les mêmes que le premier cas Pourtant, en modifiant quelques points dans la région choisie, la surface obtenue n’est plus de forme de celle d’origine Alors dans ce cas, il est nécessaire d’une mesure d’erreur afin de trouver les bons choix de région d’approximation Van Thoi TRAN -41- Implicitation de surfaces rationnelles CONCLUSION Chapitre : CONCLUSION On a réussi trouver l’équation implicite d’une surface rationnelle avec les méthodes présentées dans le troisième chapitre Néanmoins, il existe ici quelques limitations qui nous conduisent des perspectives d’un travail futur En analysant les résultats obtenus, on peut trouver facilement que la méthode de Macaulay n’est pas une solution acceptable pour le problème d’implicitation cause de ses limitations d’applications dans le cas de point base et de gros calcul Cela explique pourquoi cette méthode est éviter Le bézoutien, grâce sa capacité de résoudre les problèmes avec points bases, peut être une très bonne approche De plus, le temps de calcul dans ce cas de bézoutien est également réduit Malheureusement, je n’ai pas encore réussi implémenter complètement son algorithme d’implicitation abordé dans le troisième chapitre En effet, l’implémentation actuelle de bézoutien dans SYNAPS ne nous donne pas exactement l’équation implicite Alors il est nécessaire une amélioration de codes sources pour cet algorithme-là D’un autre côté, le problème d’approximation n’est pas encore bien résolu malgré quelques bons résultats avec l’évaluation A cause des erreurs qui viennent avec les points et les degrés donnés, cette méthode retourne souvent des mauvaises solutions C’est pourquoi il faut mettre ici un mécanisme efficace pour le choix des points dans l’espace des paramètres, ou bien encore trouver une autre approche pour construire la matrice d’évaluation Van Thoi TRAN -42- Implicitation de surfaces rationnelles Annexe Annexe Je mets ici quelques fichiers de codes sources du module de visualisation et leurs exemples d’utilisations Fichier Double.mmh : définition du type foreign "C++" { Double: Type == "double"; Double_(i: Int): Double == "double(i)"; Int_(d: Double): Int == "int(d)"; assign (v : Variable, w: Int): Double == "set(v,double(w)); return v"; assign (v : Variable, s: String): Double == "set(v,atof(s));return v"; new (v : LiteralFloat) : Double == "as_double(v)"; infix + (v : Double, w: Double): Double == "v+w"; infix + (v : Double, w: Int): Double == "v+w"; infix + (v : Int, w: Double): Double == "v+w"; infix - (v : Double, w: Double): Double == "v-w"; infix - (v : Double, w: Int): Double == "v-w"; infix - (v : Int, w: Double): Double == "v-w"; infix - (w: Double): Double == "-w"; infix * (v : Double, w: Double): Double == "v*w"; infix * (v : Double, w: Int): Double == "v*w"; infix * (v : Int, w: Double): Double == "v*w"; infix / (v : Double, w: Double): Double == "v/w"; infix / (v : Double, w: Int): Double == "v/w"; infix / (v : Int, w: Double): Double == "v/w"; infix / (v : Int, w: Int): Double == "double(v)/w"; } Fichier viewer.mmh : fonction d’affichage foreign "C++" { preamble Van Thoi TRAN -43- Implicitation de surfaces rationnelles Annexe /" #include #include "axel/viewer/geomview.H" "/; Scene : Type == "geomview::output"; scene(s: String) : Scene == "geomview::output(s)"; view (sc : Scene) : Int == "sc.view();return 1"; init (sc : Scene) : Int == "sc.init();return 1"; } Fichier point.mmh : définition du point foreign "C++" { preamble /" #include "axel/affine/point.H" #include "axel/viewer/geomview_point_set.H" "/; use "viewer"; Point : Type =="affine::point"; point(m: Int, s: String): Point == "affine::point(m,s)"; print(sc:Scene, pt:Point):Int == "geomview::print(sc,pt,0.1,1,0,0);return 1"; } Fichier pointset.mmh : définition d’un ensemble de points foreign "C++" { preamble /" #include "axel/affine/point_set.H" #include "axel/viewer/geomview_point_set.H" "/; use "point"; use "viewer"; PointSet : Type =="affine::point_set"; pointset(p: Point) : PointSet == "affine::point_set(p)"; infix + (ps: PointSet,pt: Point): PointSet := "affine::point_setr(ps); r.insert(pt);return r"; infix + (ps1: PointSet,ps2: PointSet): PointSet := "affine::point_setr(ps1); for(affine::point_set::const_iterator it=ps2.begin(); it !=ps2.end(); it++) r.insert(*it); return r"; Van Thoi TRAN -44- Implicitation de surfaces rationnelles Annexe view(s: PointSet):Int == " geomview::output g_out(\"mmx.gmv\"); geomview::print(g_out,s); g_out.view(); return 1"; infix

Ngày đăng: 30/10/2020, 21:16

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w