"Gérard Nin" wrote in message news:...
> "Gibbs" a écrit dans le message de news:
> 3f84788d$0$24178$ba620e4c@reader0.news.skynet.be...[color=green]
> > Bonsoir à toutes et à tous,
> > Quand on connaît la longueur des quatres côtés d'un quadrilatère convexe> ainsi que la
> > longueur d'une des diagonales, est-il possible de calculer la longueur de> la seconde
> > diagonale. Et si oui, comment ?> Notons ABCD le quadrilatère convexe dont on connait les longueurs des côtés
> et BD la diagonale dont on connait la longueur. Alors, dans le triangle ADB
> les 3 longueurs des côtés sont connues. Il est donc possible de déterminer
> les 3 angles en appliquant la formule dite "d'Al Kashi", par exemple : AD²
> = AB²+BD² - 2.AB.BDcos(angleABD), d'où cos(angleABD et angleABD en tenant
> compte qu'il s'agit de l'angle d'un triangle, c'est-à-dire d'un angle
> compris entre 0 et Pi . Puis, dans le triangle DBC, on fait de même et on
> détermine notamment l'angle BDC. Le quadrilatère étant convexe, l'angleABC =
> angleABD + angleDBC et on connait alors l'angleABC. L'utilisation de la même
> formule permet de calculer : AC² = AB² + BC² - 2.AB.BC.cos(ABC).
> Cordialement, GN[/color]
La bonne idée c'est effectivement de passer par la trigo, mais il faut
noter que la formule finale peut être débarrassée des cosinus (merci
mathematica!):
r1 = ABD -> ArcCos[(AB^2 - AD^2 + BD^2)/(2*AB*BD)]
r2 = CBD -> ArcCos[(BC^2 + BD^2 - CD^2)/(2*BC*BD)]
sol = Sqrt[AB^2 + BC^2 - 2*AB*BC*(Cos[ABD]*Cos[CBD] -
Sin[ABD]*Sin[CBD])] /. r1 /. r2 // Simplify
Résultat final:
Sqrt[AB^2 + BC^2 - ((AB^2 - AD^2 + BD^2)*(BC^2 + BD^2 -
CD^2))/(2*BD^2) +
2*AB*BC*Sqrt[1 - (AB^2 - AD^2 + BD^2)^2/(4*AB^2*BD^2)]*
Sqrt[1 - (BC^2 + BD^2 - CD^2)^2/(4*BC^2*BD^2)]]
Test avec un rectangle :
sol /. AB -> 3 /. BC -> 4 /. CD -> 3 /. AD -> 4 /. BD -> 5
donne bien 5 pour l'autre diagonale AC.
---
jcp