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...
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
...
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 !
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
...
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.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :