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 :

fonction de détection d'intersection


Sujet :

Mathématiques

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut fonction de détection d'intersection
    Bonjour,
    j'ai écrit une fonction qui permet de savoir si la droite p1 croise la droite p2 en retournant xc,yc qui est le point d'intersection de ces 2 droites.

    elle retourne false si les 2 droites ne se croisent pas.

    Est ce que le contenu de la fonction est correcte ?

    Code pascal : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    function isinter(p1p,p2p,p1sp,p2sp : tpoint;var xc,yc : integer) : boolean;
    var oki : boolean;
        d_de_i,d_a_i,d2 : double;
        d_de_sp,d_a_sp : double;
        d2_sp : double;
        r : boolean;
     
    begin
         r := false;
         oki := intersection(p1p,p2p,p1sp,p2sp,xc,yc);
     
                      if (oki) then begin
                        //d := distance(p1p.x,p1p.y,xc,yc); //distance début du chemin à l'intersection du petit ligne
                        d2 := distance(p1sp.x,p1sp.y,p2sp.x,p2sp.y); //distance droite chemin
                        d_de_i := distance(xc,yc,p1sp.x,p1sp.y); //distance point intersection au chemin
                        d_a_i := distance(xc,yc,p2sp.x,p2sp.y);  //distance point intersection au chemin
     
                        d2_sp := distance(p1p.x,p1p.y,p2p.x,p2p.y);
                        d_de_sp := distance(xc,yc,p1p.x,p1p.y);
                        d_a_sp := distance(xc,yc,p2p.x,p2p.y);
     
     
     
                        if ((d_de_i<=d2) and (d_a_i<=d2)) then begin
                           if (d_de_sp<=d2_sp) and (d_a_sp<=d2_sp) then begin
                              r := true;
                           end;
                        end;
                     end;
         isinter := r;
    end;
     
    function distance(x1,y1,x2,y2 : integer) : double;
    var d : double;
    begin
          d := sqrt(sqr(y1-y2)+sqr(x1-x2));
          distance := d;
    end;

    Merci ;

  2. #2
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Salut,

    Tu pourrais peut-être expliquer ton algo, plutôt que d'afficher une fonction sans explications et nous laisser jouer aux devinettes!!!

    Utilises les balises CODE ( l'icone # ) pour ton code.

    Merci.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    On comprend rien,

    En théorie l'intersection de deux droites se fait en résolvant un système d’équation. Mais la plupart des langages évolués possèdent déjà ce type de fonction, sauf si tu faits de la recherche, il est souvent inutile de les réécrire.

Discussions similaires

  1. Codage d'une fonction de détection de pics
    Par eragon4992 dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 22/04/2014, 04h30
  2. Carre magique : fonction de détection
    Par guigui64 dans le forum Débuter
    Réponses: 1
    Dernier message: 25/02/2010, 10h15
  3. Surface d'intersection de deux fonctions normales
    Par fabule dans le forum Mathématiques
    Réponses: 3
    Dernier message: 02/02/2007, 15h41
  4. Intersection de deux fonctions
    Par ramrouma dans le forum MATLAB
    Réponses: 2
    Dernier message: 24/01/2007, 15h23

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