Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

intersection de deux droites

Posté par
matadora
06-01-11 à 16:18

Bonjour,

Je suis rentre cette annee en ecole d'informatique et je bloque depuis plusieurs jours sur une formule...

Je dois trouver les coordonees du point d'intersection entre deux droites, en connaissant les coordonees et le vecteur directeur d'un point, et les coordonees de l'autre. (les vecteurs sont orthogonaux).

J'ai pense a transformer mes droites en equation de la forme: y = ax + b, mais cette methode me parais tres longue (pour un programme qui doit etre tres rapide), et a l'inconveignant de ne pas marcher lorsque le vecteur directeur d'une droite est de type (0, 1).


Pour simplifier, je vais reecrire les donnees avec ce que j'ai:

Point A de coordonees (x0, y0)
Point B de coordonees (x1, y1)

Le vecteur directeur de la droite D1 passant par A est Va(Vax, Vay)
Le vecteur directeur de la droite D2, orthogonale a D1 et passant par B est Vb(-Vbx, Vay)

Comment trouver les coordonnees du point C (x2, y2), situe a l'intersection des deux droites?

Merci d'avance,
Matadora

PS: desole pour les accents, qwerty oblige...

Posté par
pgeod
re : intersection de deux droites 06-01-11 à 18:54


Ecris :

AM = k1 U (1)
BM = k2 V (2)

avec M(x; y) U(a; b) V(-b; a)
avec A(xA, yA) et B(xB; yB)

de (1) et (2) passe aux formules en coordonnées
puis exprime k1 ou k2 en fonction a, b, xA, yA, xB et yB

...

Posté par
matadora
re : intersection de deux droites 06-01-11 à 22:59

Bonsoir et merci pour cette reponse rapide !

Voici mes quelques calculs:

(x - Xa) * (b) - (y - Ya) * (a) = 0
<==> x * b - Xa * b - y * a + Ya * a = 0
<==> bx - ay + (- Xa * b + Ya * a) = 0

(x - Xb) * (a) - (y - Yb) * (-b) = 0
<==> x * a - Xb * a + y * b - Yb * b = 0
<==> ax + yb + (- Xb * a + Yb * b) = 0

D'ou: bx - ay + (- Xa * b + Ya * a) = ax + yb + (- Xb * a + Yb * b)
<==> bx - ay -ax - yb = Xa * b - Ya * a - Xb * a + Yb * b
<==> x * (b - a) + y * (- a - b) = (Xa + Yb) * b - (Xb + Ya) * a

Par contre, je pense m'etre perdu avec les k...
Une idée serait la bienvenue !

Posté par
pgeod
re : intersection de deux droites 07-01-11 à 18:31

AM = k1 U (1)
BM = k2 V (2)

avec M(x; y) U(a; b) V(-b; a)
avec A(xA, yA) et B(xB; yB)

de (1) et de (2) on tire :

x - xA = k1 a
y - yA = k1 b

et

x - xB = - k2 b
y - yB = k2 a

on égale les x et les y :

k1 a + xA = -k2 b + xB
k1 b + yA = k2 a + yB

<=>

k1 a² + a xA = -k2 ab + a xB
k1 b² + b yA = k2 ab + b yB

----------- en ajoutant membre à membre :

k1 (a² + b²) + a xA + b yA = a xB + b Yb

d'où k1 = [a (xB - xA) + b (yB - yA)] / (a² + b²)

puis les coordonnées du point d'intersection :

x  = k1 a + xA
y =  k1 b + yA

...

Posté par
matadora
re : intersection de deux droites 08-01-11 à 00:42

Merci bien !

A part ca, je m'etait trompe dans mon algo, les deux vecteurs n'etaient pas orthogonaux.

En reutilisant la methode si dessus, je retombe sur:
k1 = (d(xB - xA) + c(Ya - Yb)) / (ad - bc)

avec V(c, d).

En tout cas, ce rappel ne fut pas innutile, encore une fois, merci !

Matadora.

Posté par
pgeod
re : intersection de deux droites 08-01-11 à 09:44



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !