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

Mathématiques Discussion :

Intersection de surface en 3d


Sujet :

Mathématiques

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 245
    Points : 110
    Points
    110
    Par défaut Intersection de surface en 3d
    Bonjour,

    J ai un petit probleme pour le calcul et le tracer d intersection en 3d.
    Je pense qu'il y a une solution toute bete a mon probleme, mais j'arrive pas a mettre la main dessus, ca m'enerve

    Je veut calculer numeriquement des vecteurs contenants les coordonnes des points represantants l intersection entre deux surfaces 3d dont je possede les equations cartesiennes.

    Pour simplifier on dira que mes deux surfaces sont :

    une sphere : (x - x0)^2 + (y - y0)^2 + (z - z0)^2 = R^2
    et un plan : a*x + b*y + c*z + d = 0

    (bon evidemment mes surfaces sont plus compliques mais la nature de mon probleme n est pas dans la complexite des equations)

    alors je travaille en IDL (Interactive Data Langage), a la limite je peux travailler en C++ si quelque trouve la solution en C++ ou s il y a un module interessant (et gratuit) que l'on peut ajouter au langage pour resoudre mon probleme.

    Mon probleme est le suivant : Je veux generer des vecteurs X,Y et Z qui representent les coordonnees decrivant ces plans, et aussi des vecteurs X,Y et Z qui represente le contour de l'intersection de ces deux surfaces.

    Si je fais par exemple une resolution sur l equation de la sphere, il me trouve pas les points formant le contour de la sphere mais il me dit : erreur, trois inconnus et une equation.

    Si je fais un solve en entrant les deux equations pour trouver l'intersection, il me dit : erreur 3 inconnus et 2 equations.

    Ce qui reconnaissons le, n'est pas faux, mais puisque je cherche une surface c'est normal qu'il y est plus d'inconnus que d'equations.

    Est ce que quelqu'un sait generer les vecteurs coordonnes des points formants les surfaces et formants l'intersection ?

    Merci

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    calculer l'intersection de deux surfaces (ormis les primitives simples telles que le plan et la sphère) n'est pas un problème très facile.
    Je pense que ton poste serait beaucoup mieux sur le forum Algorithme/math.

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Il n'y a pas d'algorithme pour trouver l'equation analytique d'une intersection quelconque de courbes 3D. Il y a par contre des algos pour determiner des points qui sont sur l'intersection (dichotomie/newton).

    Si tu cherches une solution analytique, j'ai bien peur que tu doives résoudre le système d'équation.

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    Citation Envoyé par pseudocode Voir le message
    Si tu cherches une solution analytique, j'ai bien peur que tu doives résoudre le système d'équation.
    je me trompe peut être, mais selon la nature des deux surface et de l'intersection résultante, le système n'a pas forcément une solution. A confirmer.

    je confirme ce que j'ai marqué plus haut, c'est un problème pour les matheux.

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    je me trompe peut être, mais selon la nature des deux surface et de l'intersection résultante, le système n'a pas forcément une solution. A confirmer.
    Si les deux surfaces ont une intersection, par définition, le système a une solution. Maintenant elle n'est peut-etre pas exprimable sous la forme d'une equation cartesienne, mais c'est un autre probleme.

    je confirme ce que j'ai marqué plus haut, c'est un problème pour les matheux.
    Exact, je déplace...

  6. #6
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    C'est faisable si on peut obtenir une représentation paramétrique de la courbe intersection:
    x(t), y(t), z(t).
    Dans le cas d'une sphère et d'un plan, ce n'est pas bien méchant:
    Se mettre dans un repère lié au plan (z=0)
    Obtenir une représentation paramètrique du cercle intersection:
    X(t)
    Y(t)
    Z(t)=0
    Transformer tout ça par la matrice de passage et arriver à la représentation voulue.
    D'une façon générale cela sera facile quand:
    L'une des deux surfaces est un plan
    La courbe plane intersection a une représentation paramétrique simple.
    Il y a d'autres cas où on peut s'en sortir avec un peu de chance, un peu d'astuce, ou un mélange des deux.
    Voici un exemple:
    Une surface réglée définie par un ensemble de droites génératrices (un cône ou un cylindre au sens le plus large, par exemple).
    La surface est donc définie par une famille de droites Dt indexée par un paramétre t.
    Supposons qu'il soit possible de déterminer l'intersection Mt de Dt avec la seconde surface, alors on a aussitôt un paramétrage de l'intersection.
    Dans le cas où les deux surfaces sont paramétrées:
    S1 = { M(s,t)}
    S2={M(u,v)}
    Déterminer l'intersection revient à résoudre:
    M(s,t)=M(u,v)
    Soit en développant avec les coordonnées un système de 3 équations à 4 inconnues.
    On peut maintenant faire un paquet cadeau avec 3 quelconques des inconnues.
    Mettons que je rebaptise y l'inconnue (t,u,v)
    Mon système peut se réécrire:
    f(s,y)=0
    où f est un fonction vectorielle
    y variable dans un espace de dimension 3
    s dans un espace de dimension 1
    le but est d'exprimer y en fonction de s. On peut le faire en général localement en appliquant le théorème local des fonctions implicites. Il faut pour cela voir la matrice jacobienne de la dérivée partielle D2f/dy qui est une application de R3 ->R3. Si elle est inversible le théorème s'applique.
    L'ennuyeux est qu'il faut après recoller les morceaux, et qu'on arrivera après force bidouillages à une ligne brisée (généralement suffisante pour un rendu grahique).
    Il reste le cas où les deux surfaces sont définies par des équations algébriques. Tout dépend alors du degré et de la virtuosité du calculateur.
    Et puis les cas mixtes où on a une représentation paramétrée pour l'une et une représentation algébrique pour l'autre.
    On peut souvent passer d'une représentation algébrique à un paramétrage, il s'agit encore de résolution d'équations.
    Bref, il n'y a pas de cas désespéré, mais:
    rien n'est simple
    il n'y a pas, à mon avis, de méthodologie générale.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 245
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Si tu cherches une solution analytiqued'équation.
    Je ne cherche pas du tout une solution analytique, j'ai bien preciser que je voulais une solution numerique, resolut de facon numerique est pas analytique

    Citation Envoyé par pseudocode Voir le message
    Il y a par contre des algos pour determiner des points qui sont sur l'intersection (dichotomie/newton).
    Les points d intersection me suffise, je n'ai pas besoin de toute la surface.

    Mais j'ai essaye avec les fonctions de resolutions newtown et dichotomie deja programme dans le langage, seulement je n'arrive pas a genere les vecteurs representants les surfaces de mes volumes, donc je ne peux pas utiliser la fonction.

    Je ne possede que les equations des volumes en cartesiens, et donc les fonctions me repondent a chaque fois qu'elles ne peuvent pas generer mes points car plus d'inconnu que d'equation.


    Je ne veux pas du tout avoir une equation cartesiennes de la solution.

  8. #8
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !

    Une surface dans l'espace à 3 dimensions comporte une "double infinité" de points. L'intersection de deux telles surfaces, si elle existe, comporte une "simple infinité" de points. Si je t'ai bien compris, tu cherches à déterminer numériquement les coordonnées d'un nombre fini de ces points. Je te suggère de choisir arbitrairement (mais judicieusement) un nombre fini de surfaces simples, comme des plans horizontaux, des plans méridiens, des sphères concentriques, ce qui te permettra de déterminer pour chacune une solution d'un système de 3 équations à 3 inconnues que tu pourras résoudre par exemple par la méthode de Newton-Raphson. Par "judicieusement", j'entends de manière telle que, si possible, chacun de tes système n'ait qu'une seule solution.

    Bonne chance
    Jean-Marc Blanc

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/05/2008, 22h54
  2. surface de l'intersection de deux triangles quelconques
    Par zekey dans le forum Mathématiques
    Réponses: 35
    Dernier message: 07/10/2007, 14h12
  3. Intersection d'une surface reglée avec une sphère
    Par IXaMaXI dans le forum MATLAB
    Réponses: 12
    Dernier message: 12/04/2007, 18h24
  4. Surface d'intersection de deux fonctions normales
    Par fabule dans le forum Mathématiques
    Réponses: 3
    Dernier message: 02/02/2007, 16h41
  5. Surface du polygone formé par l'intersection d'un plan et d'un cube unitaire
    Par ToTo13 dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/09/2006, 11h05

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