Quadrilatère

Trouver un quadrilatère convexe ABCD de côté CD donné, d'angles en C et D donnés, et d'aire donnée.
Données  CD =
 Angle C = deg 
 Angle D = deg 
 Aire =
Calcul direct :   AD =
 BC =
 
Résoud pour AD donné :   AD =
Résoud avec AD = BC : 
Résoud avec AB parallèle à CD : 
Résoud avec angle A = 90° 

Ce script ne gère pas les cas dégénérés (côtés "négatifs", non convexe etc.)

Méthode

Considérons le quadrilatère dans un repère d'origine D = {0,0} avec CD sur l'axe des abscises : C = {CD, 0}
Les coordonnées de A et B sont :
A = {xA = AD.cos(D), yA = AD.sin(D)}
B = {xB = CD - BC.cos(C), yB = BC.sin(C)} (attention au signe !)

On peut calculer directement l'aire du quadrilatère comme somme des aires des triangles ABD et BCD
Aire du triangle BCD = CD.BC.sin(C)/2 (formule connue, de toute façon base×hauteur/2)
L'aire du triangle ABD à partir des coordonnées utilise le produit vectoriel :
||DB>×DA>||/2 = ( (xB - xD)(yA - yD) - (yB - yD)(xA - xD) )/2
Ce qui se simplifie car xD = yD = 0 :
Aire(ABD) = (xB.yA - yB.xA)/2 = ((CD - BC.cos(C)).AD.sin(D) - BC.sin(C).AD.cos(D))/2
et l'aire du quadrilatère, après simplifications :

S = (CD.BC.sin(C) + CD.AD.sin(D) - BC.AD.sin(C+D))/2

Petite controle : si les angles sont exactement 90°, on a S = CD.(BC + AD)/2, l'aire d'un trapèze

Les autres inconnues, le côté AB, obtenu directement de AB² = (xB - xA)² + (yB - yA

L'angle A est obtenu par Al Kashi dans le triangle ABD cos(A) = (AB² + AD² - BD²) / (2.AB.AD)

L'angle B par Al Kashi dans le triangle BCD cos(B) = (AB² + BC² - AC²) / (2.AB.BC)
Ou même encore plus simple par A + B + C + D = 360° !

Résolution avec contraintes

Il y a un continuum de solutions avec différentes valeurs pour les côtés inconnus AD et BC
On a l'équation ci-dessus : Aire(ABCD) = f(AD, BC) = S, avec comme inconnues AD et BC.
On peut contraindre ces inconnues pour obtenir des solutions spécifiques, par des conditions supplémentaires sur AD et BC :
  1. AD imposé
    C'est à dire de résoudre l'équation ci-dessus en la seule inconnue BC

    BC = (2S - CD.AD.sin(D)) / (CD.sin(C) - AD.sin(C+D))
    Bien sûr la valeur max de AD est 2S/(CD.sin(D)) !

  2. AD = BC
    C'est à dire, avec AD = BC = x dans la formule de l'aire, l'équation du second degré :

    x²sin(C+D) - x.CD.(sin(C) + sin(D)) + 2S = 0

  3. AB // CD
    C'est à dire avec yA = yB : AD.sin(D) = BC.sin(C)
    ou AD = BC.sin(C)/sin(D), en en substituant dans la formule de l'aire, l'équation du second degré en x = BC :

    x²sin(C+D).sin(C)/sin(D) - 2x.CD.sin(C) + 2S = 0

  4. Angle A = 90°
    C'est à dire le produit scalaire AD.AB = 0
    Ou encore xA(xB - xA) + yA(yB - yA) = 0 (car xD = yD = 0 !)
    En substituant et en simplifiant, il vient :

    BC = -(AD - CD.cos(D))/cos(C+D)
    Noter que on a C+D > 90° ! attention au signe AD > CD.cos(D) et cos(C+D) < 0
    Si C = D = 90° la condition est équivalente à BC = AD (un vrai rectangle)

    En substituant dans la formule de l'aire on obtient l'équation du second degré en x = AD :

    x²sin(C+D) - 2x.CD.sin(C) + CD²cos(D)sin(C) - 2S.cos(C+D) = 0

 

 

Accueil Arithmétiques Géométrique Divers Thèmes Scripts Jeux Exercices Sujet précédent