Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2127 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Point d'intersection de deux lignes 2D ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Point d'intersection de deux lignes 2D ...

n°938665
darkoli
Le Petit Dinosaure Bleu
Posté le 05-01-2005 à 23:40:47  profilanswer
 

Bonjour,
 
Je recherchais une méthode pour trouver le point d'intersection de deux lignes (dans le cas où les lignes ne sont pas parallèles).
 
Je me suis dit (sachant qu'au départ je connais deux points distincts de chaque lignes) que je pouvais utiliser les équations suivantes :

Droite D1 :
x = (x2-x1)t1 + x1
y = (y2-y1)t1 + y1

Droite D2 :
x = (x4-x3)t2 + x3
y = (y4-y3)t2 + y3


Les seules inconnues sont donc t1 et t2.
Alors j'ai commencé à résoudre mon système ...

a : (x2-x1)t1 + x1 = (x4-x3)t2 + x3
b : (y2-y1)t1 + y1 = (y4-y3)t2 + y3

Je pars de b, j'ajoute -y3 de chaque côté et je divise le tout par (y4-y3).

        (y2-y1)t1 + y1 - y3
c : t2 = -------------------
               (y4-y3)

Ensuite je vais utiliser a où je vais remplacer t2 par le résultat que je viens d'obtenir.

                             (y2-y1)t1 + y1 - y3
d : (x2-x1)t1 + x1 = (x4-x3)( ------------------- ) + x3
                                    (y4-y3)

Je sors t1 de la fraction et je multiplie tout par (y4-y3).

e : (y4-y3)(y2-y1)t1 + (y4-y3)x1 = (x4-x3)(y2-y1)t1 + (x4-x3)(y1-y3) + (y4-y3)x3

Voilà, tout ce passe bien, il ne me reste plus qu'à mettre les t1 du même côté et le reste de l'autre.

f : ((y4-y3)(y2-y1) - (x4-x3)(y2-y1))t1 = (x4-x3)(y1-y3) - (y4-y3)(x3-x1)

Il ne me reste plus qu'à diviser le tout par "((y4-y3)(y2-y1) - (x4-x3)(y2-y1))".

        (x4-x3)(y1-y3) - (y4-y3)(x3-x1)
g : t1 = -------------------------------
         (y4-y3)(y2-y1) - (x4-x3)(y2-y1)

Vous êtes encorre là ?Ben j'ai bientôt fini.
Tout content je code ma formule et ça ne marche pas du tout !!!
Je fais une recherche sur internet et je tombe sur un site qui expose une méthode qui ressemble beucoup à la mienne sauf qu'elle marche !!! (http://astronomy.swin.edu.au/~pbourke/geometry/lineline2d/)
La seule différence concerne le terme (x3-x1) qui est (x1-x3) sur le site.
Je suppose qu'il y a un truc qui ne va pas dans ma façon de résoudre mon équation, mais je ne vois pas l'erreur.
 
Pouvez-vous m'aider ?


Message édité par darkoli le 05-01-2005 à 23:43:12

---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
mood
Publicité
Posté le 05-01-2005 à 23:40:47  profilanswer
 

n°938690
pains-aux-​raisins
Fatal error
Posté le 06-01-2005 à 00:36:17  profilanswer
 

Pour la ligne e, il y a une petite erreur de copier/coller :
 

e : (y4-y3)(x2-x1)t1 + (y4-y3)x1 = (x4-x3)(y2-y1)t1 + (x4-x3)(y1-y3) + (y4-y3)x3


 
(x2-x1) et non pas (y2-y1)...
 
ensuite, on répercute la correction :

f : ((y4-y3)(x2-x1) - (x4-x3)(y2-y1))t1 = (x4-x3)(y1-y3) + (y4-y3)(x3-x1)


 
C'est ici que tu as fait la petite faute de signe. En passant le (y4-y3)x1 de l'autre côté tu sans doute voulu tout faire en même temps à droite. Ceci corrigé, on retrouve bien la formule magique :
 

        (x4-x3)(y1-y3) + (y4-y3)(x3-x1)
g : t1 = -------------------------------
         (y4-y3)(x2-x1) - (x4-x3)(y2-y1)


 

        (x4-x3)(y1-y3) - (y4-y3)(x1-x3)
g : t1 = -------------------------------
         (y4-y3)(x2-x1) - (x4-x3)(y2-y1)

n°938726
FlorentG
Unité de Masse
Posté le 06-01-2005 à 08:08:57  profilanswer
 

Tiens j'avais fait ça en Java une fois, ça gérait même les lignes verticales, faut que je le retrouve...

n°938765
darkoli
Le Petit Dinosaure Bleu
Posté le 06-01-2005 à 09:08:44  profilanswer
 

pains-aux-raisins a écrit :

Pour la ligne e, il y a une petite erreur de copier/coller :
 

e : (y4-y3)(x2-x1)t1 + (y4-y3)x1 = (x4-x3)(y2-y1)t1 + (x4-x3)(y1-y3) + (y4-y3)x3


 
(x2-x1) et non pas (y2-y1)...
 
ensuite, on répercute la correction :

f : ((y4-y3)(x2-x1) - (x4-x3)(y2-y1))t1 = (x4-x3)(y1-y3) + (y4-y3)(x3-x1)


 
C'est ici que tu as fait la petite faute de signe. En passant le (y4-y3)x1 de l'autre côté tu sans doute voulu tout faire en même temps à droite. Ceci corrigé, on retrouve bien la formule magique :
 

        (x4-x3)(y1-y3) + (y4-y3)(x3-x1)
g : t1 = -------------------------------
         (y4-y3)(x2-x1) - (x4-x3)(y2-y1)


 

        (x4-x3)(y1-y3) - (y4-y3)(x1-x3)
g : t1 = -------------------------------
         (y4-y3)(x2-x1) - (x4-x3)(y2-y1)


Merci !!!
Oui il'y avait bien une erreur "bête".


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°938769
darkoli
Le Petit Dinosaure Bleu
Posté le 06-01-2005 à 09:10:57  profilanswer
 

FlorentG a écrit :

Tiens j'avais fait ça en Java une fois, ça gérait même les lignes verticales, faut que je le retrouve...

Ben avec cette méthode ça gère très bien les lignes verticales, il n'y a aucun cas particulier à part le fait d'avoir deux lignes parallèle mais dans ce cas le dénominateur est nul, il suffit donc de le tester et la tour est joué.
 
Pour obtenir les coordonnées du point d'intersection (si le dénominateur n'est pas nul) il suffit d'utiliser les équations de la droite D1 et c'est fini.


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°938774
FlorentG
Unité de Masse
Posté le 06-01-2005 à 09:12:56  profilanswer
 

Ah oui, j'avais pas vu que t'utilisais deux points pour représenter la droite :D :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Point d'intersection de deux lignes 2D ...

 

Sujets relatifs
Enlever des lignes dans un fichierCherche à tracer des lignes!!!graphics.h???
Trouver l'addresse du point d'entrée d'un exe[Pourquoi]Lignes dans le out d'un jsp = nb de <@ page>
Programmation VB Power pointScripts vba sur power point
lire certaines lignes d'un fichier texte (php)Garder les dernieres lignes d'un fichier texte
[Dreamweaver] Pb de saut de lignessélectionner lignes
Plus de sujets relatifs à : Point d'intersection de deux lignes 2D ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR