Outils pour utilisateurs

Outils du site


nsi:tds:maths:geometrie_analytique

Ceci est une ancienne révision du document !


Des outils pour la géométrie analytique

On désire mettre en place un outil de géométrie analytique qui nous permettrait de calculer des points d'intersections, des centres de gravités, des longueurs, des aires…

C'est un bon exemple d'utilisation des classes et peut-être vu comme un prolongement de cet exercice.

Pour faire simple, on se contente de résultats approximatifs, sous forme de float.

Nous faisons exprès de multiplier les fonctions. Il s'agit de mettre en avant une notion de boîte à outils.

Points

  • C'est un type primitif qui ne doit dépendre d'aucun autre.
  • Un point a deux attributs x et y.

Dans notre application, un point est simplement une paire de coordonnées, tout comme un vecteur. On peut donc faire la confusion point - vecteur et faire sur le point des opérations que l'on ferait sur un vecteur.

On voudrait avoir les méthodes suivantes :

  • norme : le point étant compris comme un vecteur, on veut la longueur correspondante
  • soustraction : faire B - A nous donnerait la paire de coordonnée du vecteur $\overrightarrow{AB}$
  • multiplication par un réel : le point étant pris comme un vecteur, on veut pouvoir multiplier ses coordonnées par une réel
  • addition : là encore, en prenant le point comme un vecteur, on doit pouvoir additionner les coordonnées
  • transtypage str : conversion en str, affichant la paire de coordonnées
  • distance à un autre point

Droite

L'objet Droite décrit une droite. Cette classe est dépendante de la classe Point.

Une droite est définie par une équation. La forme la plus générale d'équation est $a\cdot x + b\cdot y + c = 0$. C'est l'équation cartésienne. On utilisera cette forme et pas $y = m\cdot x + p$ qui n'est pas valable pour une droite verticale.

  • L'objet Droite a les attributs a, b, c.

On veut les méthodes suivantes :

  • tester si deux droites sont parallèles, deux droites sont parallèles si $a\cdot b' = a' \cdot b$
  • obtenir la droite passant par deux points,
    Les coefficients pour la droite $(AB)$ sont $a = y_B - y_A$, $b = -(x_B - x_A)$ et $c = -a\cdot x_A + b \cdot y_A$
  • obtenir la perpendiculaire à la droite et passant par un point, Une perpendiculaire a les coefficients $a' = -b$ et $b' = a$
  • obtenir la médiatrice d'un segment donné sous la forme d'une paire de points,
  • obtenir l'intersection entre deux droites,
    Il faut que les deux droites soient non parallèles puis $x = -\frac{c\cdot b' - c'\cdot b}{a\cdot b' - a'\cdot b}$ et $y = -\frac{c\cdot a' - c'\cdot a}{b\cdot a' - b'\cdot a}$
  • tester si un point est sur la droite il suffit de vérifier si $a\cdot x + b\cdot y + c = 0$
  • tester si deux droites sont perpendiculaires Elles sont perpendiculaires si $a\cdot a' + b \cdot b' = 0$

Segment

Pas obligé, mais ça peut paraître mieux car plus rigoureux.

  • Un objet Segment est défini par les deux Point extrémités.

Il a les méthodes :

  • milieu
  • longueur
  • mediatrice. Cette fonction ne serait alors plus dans la classe Droite

Triangle

Un objet Triangle décrit un triangle. Cette classe est dépendante des classes Point et Triangle.

  • Le triangle a les attributs A, B, C, ses sommets.

On veut les méthodes suivantes :

  • aire du triangle
  • périmètre du triangle
  • centre de gravité
  • centre du cercle circonscrit
  • orthocentre
  • tester si le triangle est rectangle

Développement

  • On peut continuer ce jeu en ajoutant encore et encore des fonctions et des objets.
  • on peut aussi ajouter une interface graphique donnant une représentation des objets créés. On pourrait par exemple utiliser matplotlib ou encore tkInter.
nsi/tds/maths/geometrie_analytique.1664526348.txt.gz · Dernière modification : de goupillwiki