IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Algorithme modifiant la forme d'une courbe


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Par défaut Algorithme modifiant la forme d'une courbe
    Bonjour !


    Je suis en charge de trouver ou développer un algorithme permettant de modifier une surface déjà existante.

    C'est à dire :

    Voici un exemple :

    1) J'ai obtenu un surface grâce a une cartographie .

    2) On souhaite rajouter des points , prenons un unique point, il serait écarté de l'ensemble de la surface.

    L'idée de l'algorithme (j'imagine différent à chaque fois)serait de pouvoir :

    - 1er niveau : de modifier la surface directement et d’interpoler le point ( on obtiendrais un pic au milieu de la surface )

    - 2eme niveau :d'interpoler le point mais également de rehausser les points voisins ( juste autour du point rajouté ) pour obtenir une sorte de lissage , faible certes

    - 3eme niveau : effectue la même chose que le 2ème niveau mais impacte la deuxième série de points autour du point rajouté
    Ainsi le lissage sera plus agréable

    Plus le niveau sera élevé plus la forme de la surface sera lisse et harmonieuse.

    Les cartographies seraient de format 16 x 16 .

    L'idée à respecter serait que c'est sur les les points de base (ceux du fichier) que l'on viendrait bouger/modifier pour obtenir une sorte de lissage ( je n'ai pas le terme exacte )autour du point que l'on à rajouter


    J'ai pensé aux interpolations de plusieurs degrés , NURBS, subdivision, lissage par algorithme...

    Mais toutes ces méthodes rajouteraient des points, de mon côté de je souhaite modifié les miens pour qu'on obtienne quelque chose de plus ou moins harmonieux / Lisse

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 227
    Par défaut
    Bonsoir,
    Pour un certain couple (x0,y0), la nouvelle valeur ne doit plus être Z1 mais Z2.
    On va donc calculer Z3 = Z2-Z1, qui servira de base à l'algorithme.

    Ensuite, selon le lissage que l'on veut obtenir, on va bâtir un pic plus ou moins pointu autour de ce couple (x0,y0).
    L'option 1, c'est qu'on modifie uniquement le point (x0,y0)
    Puis on va construire des cercles autour de ce point (x0,y0).
    Pour chaque couple (xi,yj), on va donc calculer la distance D entre ce point (xi,yj) et le point (x0,y0), et on va calculer DZ = Z3 * exp ( - k * D2/2)
    Cette fonction est assez classique , et donne des dégradés sympathiques.
    L'idée est de réhausser chaque point de cette valeur DZ.
    Si on choisit un coefficient k très grand, on va avoir un pic très pointu. Et si k est proche de 0, ça revient à réhausser tous les points quasiment de la même hauteur.

    Avec cet algorithme, tous les points qui sont à X centimètres du centre sont tous remontés de la même façon.
    Dans ton schéma, si on remonte le point tout à droite de 0.5, on a peut être envie que le point qui est rouge foncé ne monte pas, parce qu'il est déjà très haut, alors que le point de coordonnées ( -2,0) devrait monter de 0.1 ou 0.2.

    Dans ce cas, c'est un peu plus compliqué.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Par défaut
    Effectivement , Merci beaucoup !

    par contre j'ai une autre petite demande :


    Une / Un méthode / algorithme


    1) Je choisis à la base une forme souhaitée à la base parmis une bibliotheque
    (mesh/surf matlab) de forme 16x16 entre 0 et 1 :

    Fig1 :
    Nom : WyD8l.png
Affichages : 853
Taille : 23,5 Ko

    2) Je sélectionne un essai ( tableau 16x16 également les valeurs peuvent être élevée) que l'on aurait modélisé grâce à matlab (mesh/surf) :

    Fig2 :
    Nom : 08.gif
Affichages : 898
Taille : 21,2 Ko


    L'idée est qu'on souhaite modifier les valeurs de l'ESSAI (Fig 2) pour qu'il ressemble à la forme de base (Fig 1) . ( on indique qu'il s'agit de Morphisme lié à la cartographie )

    La base ne sera pas modifié, elle sert de repère à la modification de l'essai...

    S'agirait-il de morphing? c'est considéré comme un morphisme de cartographie


    merci Encore

  4. #4
    Membre émérite
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Par défaut
    Citation Envoyé par Thornn654 Voir le message
    S'agirait-il de morphing? c'est considéré comme un morphisme de cartographie
    A mon sens non. Un morphing serait une transformation "continue" d'une surface vers une autre.

    Pour ce que je comprend, tu ne fais qu'ajouter des points de contrôle pour calculer un modèle de surface. Tu ne fais pas de transformation entre les deux modèles de surface obtenu.

    En cartographie, l'algorithme que tu recherches s'inscrit dans la catégorie "interpolation spatiale". Il existe de nombreuses méthodes pour ça. Tu trouveras un cours plutôt bien illustré sur le site de l'ENSG.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 74
    Par défaut
    L'idée est de calquer la forme de la Figure 1 et de s'arranger pour que la Figure 2 soit de la même forme que la 1 tout en gardant l'ordre de grandeur initiale.

    L'interpolation spatiale fonctionne sur un élément dont on ne connais aucun point, Or moi je connais l'ensemble des points ( matrice 16x16 ) donc le maillage je l'ai déjà , je souhaite trouver un moyen de modifier ma seconde Figure pour qu'elle ressemble à celle choisis dans la bibliothèque (Figure1), tout en sachant que l'ordre de grandeur de la seconde figure doit être conserver

  6. #6
    Membre émérite
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Par défaut
    Citation Envoyé par Thornn654 Voir le message
    L'interpolation spatiale fonctionne sur un élément dont on ne connais aucun point, Or moi je connais l'ensemble des points ( matrice 16x16 ) donc le maillage je l'ai déjà , je souhaite trouver un moyen de modifier ma seconde Figure pour qu'elle ressemble à celle choisis dans la bibliothèque (Figure1),
    Interpolation spatiale : Tu connais des valeurs pour un ensemble de points, tu veux interpoler ces valeurs en d'autres points. Tu es peut-être en train de faire un sorte de pondération/moyenne entre deux surfaces définies par des grilles.

    Citation Envoyé par Thornn654 Voir le message
    tout en sachant que l'ordre de grandeur de la seconde figure doit être conserver
    Mathématiquement, ça se traduit comment? C'est ça qui va donner le "poids" de la surface 2 par rapport à la surface 1.

    "Physiquement", tes deux surfaces correspondent à quoi? Des mesures à des dates différentes?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modifier la forme d'une image
    Par ayachimi dans le forum Images
    Réponses: 1
    Dernier message: 16/05/2011, 15h49
  2. Réponses: 1
    Dernier message: 03/05/2011, 17h25
  3. [Qt] Modifier la forme d'une fenetre
    Par FunK92 dans le forum Qt
    Réponses: 2
    Dernier message: 30/04/2009, 19h20
  4. algorithme detection de pics dans une courbe
    Par bfb dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 31/03/2006, 11h08
  5. [VB.NET] [Forms] Modifier le fond d'une ligne
    Par maitrebn dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/05/2004, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo