Equation d'un Spline et d'un NURBS
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Equation d'un Spline et d'un NURBS



  1. #1
    Cyril Finet

    Equation d'un Spline et d'un NURBS


    ------

    Bonjour,

    Je cherche à trouver, dans un premier temps, l'équation d'un spline (courbe de bézier), dans un second, l'équation d'un NURBS, à partir de coordonnées de points de contrôle et de poids.

    Le but final est que je puisse trouver la distance minimale entre un point de coordonnées xy, ainsi que la tangente au spline/Nurbs au point de distance minimale.

    Mes connaissances en géométries planes sont assez limitées, j'entends par là que je suis familier avec les équations "classiques", y(x) = ... , mais pas avec les équations y(t) = ... et x(t) = ... .

    Est ce que quelqu'un saurait m'expliquer le concept ? J'ai trouvé des infos concernant les points de contrôle d'une courbe de bézier afin de calculer l'équation de cette dernière, mais rien concernant le "poids" des points de contrôle d'un NURBS.

    Merci d'avance.

    -----

  2. #2
    Paraboloide_Hyperbolique

    Re : Equation d'un Spline et d'un NURBS

    Bonjour,

    1.

    Je suppose que vous savez que, étant donnés (n+1) points de contrôles, une séquence nodale de longueur (m+1) croissante et un degré d tels que n+1=m-d, il est possible de tracer une courbe (B-)spline au moyen de l'algorithme de Cox-De Boor (ou d'un autre algorithme).

    Concernant les NURBS, le "truc" le plus simple à mon sens est de passer en coordonnées homogènes. C'est-à-dire que pour un poids et un point de contrôle , on construit le point en coordonnées homogènes .

    On peut alors directement appliquer l'algorithme de Cox-de Boor (ou un autre) tel quel sur ces points en coordonnées homogènes pour obtenir le point en coordonnées homogènes .

    L'obtention du point correspondant dans l'espace physique s'obtient alors par "division perspective", c'est-à-dire que l'on divise les trois premières coordonnées de par la quatrième: . Remarque: si , alors ne correspond pas à un point, mais à un vecteur.

    Note, cela fonctionne aussi en 2D: supprimez simplement la coordonnée z. Plus généralement cela fonctionne en toute dimension .

    2.

    Etant donné une courbe NURBS, et un point extérieur à cette NURBS, il n'y a pas de formule analytique pour trouver le point sur la courbe le plus proche de ce point extérieur. Le mieux que l'on puisse faire est d'utiliser une méthode numérique de type itération de Newton. Un tel algorithme est décrit dans "The Nurbs Book" de Pielg et Tiller (en anglais). Si vous êtes intéressé par les NURBS, je vous le recommande. C'est vraiment LE livre de référence dans le domaine.

    https://link.springer.com/book/10.10...-3-642-97385-7

  3. #3
    Cyril Finet

    Re : Equation d'un Spline et d'un NURBS

    Bonjour,

    Merci pour votre réponse.

    Concernant le dernier point où vous m'indiquez qu'il n'y a pas de formule pour trouver la distance minimale entre un point et une courbe NURBS/Spline, je ne suis pas tout à fait d'accord.
    Après quelques recherches et essais, il est possible d'écrire l'équation de la distance entre le point et le Nurbs/Spline comme ceci : Nom : Formule.PNG
Affichages : 69
Taille : 1,9 Ko

    X et Y de p étant les coordonnées de mon point externe.
    X et Y de t étant les coordonées du point sur le Nurbs/Spline en fonction de t (variant de 0 à 1).

    Il suffit de dériver cette fonction de la distance sur t et d'effectuer un tableau de signe afin de trouver le minimum.

  4. #4
    Paraboloide_Hyperbolique

    Re : Equation d'un Spline et d'un NURBS

    Bonjour,

    Effectivement, il y a une formule pour exprimer la distance d'un point à une NURBS. Par contre, il n'y a pas, en général, de solution analytique à celle-ci pour des courbes de degrés > 4. C'est lié au fait qu'il n'y a pas de solution analytique pour trouver, en général, les racines d'un polynôme de degré > 4; et qu'une courbe NURBS est une courbe polynomiale par morceaux.

    Votre idée, à priori bonne, se prend malheureusement ce "mur". En imaginant avoir trouvé le segment polynomial le plus proche de votre point (ce qui est possible), et en convertissant ce segment sous forme polynomiale de degré d:




    J'obtiens en dérivant votre formule par rapport à t et en égalant à 0:



    A partir de là, il faudrait donc trouver les solutions à cette "bête" pour pouvoir établir votre tableau de signes. A mon humble avis, ce n'est pas possible sans recourir à une méthode numérique.
    Dernière modification par Paraboloide_Hyperbolique ; 07/01/2023 à 15h46.

  5. A voir en vidéo sur Futura
  6. #5
    Cyril Finet

    Re : Equation d'un Spline et d'un NURBS

    Ce que vous appelez degré représente t'il le nombre de point de contrôle du Spline/Nurbs ?

    Dans ce cas alors oui, j'ai cru comprendre que à partir 4 points de contrôles (Spline Cubique), l'on commençait à avoir de belles "bêtes" à calculer...
    En finalité, je crois que je n'aurai pas besoin de gérer plus de 4 points de contrôles en même temps, certes, le faire sur papier prend du temps, mais cela ne devrait pas poser trop de problèmes à un ordinateur .

    Pour trouver l'équation de la tangente en ce point de distance minimum, je peux trouver l'accroissement (pente) sur X et sur Y de manière séparée. Je pense que en calculant " arctan(accroissement Y / accroissement X) ", j'obtiens la pente globale de ma tangente.
    Je devrai le tester plus en détails, mais j'ai fait quelques essais sur papier et ça a l'air de fonctionner.

    Encore merci pour vos réponses.

  7. #6
    Paraboloide_Hyperbolique

    Re : Equation d'un Spline et d'un NURBS

    Citation Envoyé par Cyril Finet Voir le message
    Ce que vous appelez degré représente t'il le nombre de point de contrôle du Spline/Nurbs ?
    Pas directement. La relation générale est:

    avec:

    n+1: le nombre de points de contrôles.
    m+1: le nombre de noeuds dans la séquence nodale.
    d: le degré de la courbe.

    Citation Envoyé par Cyril Finet Voir le message
    Dans ce cas alors oui, j'ai cru comprendre que à partir 4 points de contrôles (Spline Cubique), l'on commençait à avoir de belles "bêtes" à calculer...
    Attention: vous supposez que , c'est-à-dire ; qui est un cas particulier. Pour une courbe B-spline/NURBS, le degré et le nombre de points de contrôles peuvent être choisis indépendamment, pourvu que la relation générale ci-dessus soit valide.

Discussions similaires

  1. Spline-TP
    Par Hajer ji dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 05/04/2021, 23h50
  2. Classe de spline
    Par Vykernes dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 07/01/2015, 09h01
  3. Spline et CAO
    Par invite1de74a73 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 25/01/2014, 11h05
  4. Nurbs
    Par invitec0f6d102 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 24/09/2008, 14h47
  5. Spline
    Par invite769a1844 dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 10/01/2008, 13h28