Document et code utile au démarrage
Positions relatives de trois points
- Créer une méthode
orientation
qui prend trois points A,B,C comme paramètres et retourne -1 si les points ABC forment un tour horaire (aussi appelé tour droit ou sens indirect), +1 s'ils forment un tour antihoraire (aussi appelé tour gauche, sens direct ou sens trigonométrique) et 0 s'ils sont alignés. - Tester votre méthode sur les triangles donnés avec le programme de démarrage.
Coordonnées polaires et coordonnées cartésiennes
Le but de cet exercice est de donner une première estimation empirique du taux d'erreur des calculs numériques utiles au passage des coordonnées cartésiennes aux coordonnées polaires. Dans cet exercice, on utilisera les fonctions trigonométriques cosinus
et sinus
. Et la fonction trigonométrique inverse arctangente
.
- Ecrire une méthode qui calcule et stocke les coordonnées polaires (r, alpha) d'un point à partir de ses coordonnées cartésiennes (x,y). Modifier les structures de données utiles pour assurer que les coordonnées polaires d'un point et ses coordonnées cartésiennes soient cohérentes tout en minimisant les (re)calculs.
- Après avoir lu attentivement la documentation des fonctions qui implémentent la fonction trigonométrique inverse
arctangente
, écrire une méthode qui calcule les coordonnées cartésiennes (x,y) d'un point à partir de ses coordonnées polaires (r, alpha) - Ecrire une méthode qui construit une liste de n points à partir des coordonnées polaires (r, alpha) générées aléatoirement où r est compris entre min (=0) et max (=1000) et alpha est compris dans l'intervalle [beta, gamma[ avec 0 ≤ beta < 2PI, 0 ≤ gamma < 2PI et beta < gamma. Calculer les coordonnées cartésiennes des points à partir des coordonnées polaires générées.
- Ecrire une méthode de test, qui calcule (mais ne stocke pas) des coordonnées polaires pour un point donnée en paramètre à partir de ses coordonnées cartésiennes. Cette méthode compare les coordonnées calculées aux coordonnées polaires enregistrées pour le point et donne un score d'erreur à chaque comparaison: 0 si les coordonnées polaires stockées sont les mêmes que celles calculées à partir des coordonnées cartésiennes et 1 lorsqu'elles sont différentes.
- Ecrire un programme qui construit un test à partir des méthodes écrites dans les questions précédentes en commençant par construire un jeu de test puis en mesurant pour ce jeu de test le pourcentage d'erreur lors des calculs de conversion de coordonnées polaires -> coordonnées cartésiennes -> coordonnées polaires. Assurer que le programme réalise plusieurs tests: (1) un test global où beta = 0 et gamma = 2PI, (2) un test spécialisé pour beta = PI/4 - epsilon et gamma = PI/4 + epsilon avec epsilon dans [0,PI/20] et (3) un test spécialisé pour beta = PI/2 - epsilon et gamma = PI/2 + epsilon. Quels sont les taux d'erreurs pour les tests 1, 2 et 3?
Calcul d'aires
Dans la classe Triangle, ajouter des méthodes pour
- Calculer l'aire totale du triangle.
- Calculer les aires des trois triangles formés par le centre de gravité et les sommets du triangle et vérifier qu'elles sont égales entre elles et de somme égale à l'aire du triangle.
- Calculer les aires des six triangles formés par les médianes. Vérifier que ces aires sont égales entre elles et de somme égale à l'aire du triangle.
Test d'alignement, points remarquables, et droite d'Euler
Ecrire des méthodes permettant de calculer
- les coordonnées du centre de gravité, G
- les coordonnées de l'orthocentre, H
- et du centre du cercle circonscrit, Ω.
Ecrire une méthode permettant de tester si trois points sont alignés et tester cette méthode et les méthodes de calcul de coordonnées précédemment écrites pour vérifier empiriquement que
- Ω, H, G, sont bien alignés, et
- HG = 2 * GΩ
Tests de cocyclicité
- En utilisant les résultats du cours, donner trois méthodes permettant de tester si 4 points sont cocycliques.
- Tester ces méthodes sur les points du cercle des neufs points pour les triangles non dégénérés donnés avec le programme de démarrage.
Tests d'appartenance d'un point à un segment
- En utilisant les résultats du cours, donner une méthode permettant de tester l'appartenance d'un point à un segment.
Tests d'intersection de deux segments
- Donner une méthode permettant de tester si deux segments ont une intersection non vide ou pas.
Calcul de l'intersection de deux segments
- Donner une méthode permettant de calculer l'intersection de deux segments dans le cas où les deux segments sont non-nuls et où ils sont portés par des droites NON parallèles.
- Donner une méthode permettant de calculer l'intersection de deux segments dans le cas général.
Cercle circonscrit à un triangle
On considère le triangle (A,B,C) dans lequel on note a, b, c les longueurs respectives des côtés [BC], [CA], et [AB]
- Calculer les coordonnées du point C, centre du cercle circonscrit au triangle (A,B,C).
- Calculer le rayon du cercle circonscrit à (A,B,C).
- Calculer les coordonnées des points AD,BD,CD, diamétralement opposés respectivement à A, B, C.
- En utilisant les résultats des questions précédentes, écrire un programme qui calcule et affiche le triangle (A,B,C) et qui affiche de manière interactive (clic, menus, boutons, touches clavier ou autre):
- le cercle circonscrit ainsi que son centre.
- les points AD,BD,CD
- les triangles construits à partir de deux points de (A,B,C) et le point diamétralement opposé au point restant comme, par exemple, le triangle: A,B,CD
- Tester votre programme sur les points donnés avec le programme de démarrage.
Segments de Céva
Dans cet exercice, on considère un triangle (A,B,C) et A', B', C' des points appartenant respectivement à [BC], [CA], [AB]. Les segments AA', BB' et CC' sont appelés segments de Ceva.
- Calculer le produit des rapports des longueurs liés aux points A',B', C':
- Modifier interactivement A', B' ou C', et afficher dynamiquement la valeur du produit des rapports.
- Sous quelle condition les segments de Céva concourent-ils en un point unique?
Bissectrices, cercle inscrit, cercles exinscrits
- Calculer les coordonnées du centre du cercle inscrit en utilisant les coordonnées barycentriques.
- Donner les coordonnées de deux points permettant de caractériser chaque bissectrice intérieur dans un triangle quelconque et vérifier, en calculant les coordonnées du point d'intersection des bissectrices intérieures que ces coordonnées sont bien celles du cercle inscrit données par les coordonnées barycentriques.
- Calculer les coordonnées du point d'intersection des bissectrices avec les côtés du triangle. En déduire le rayon du cercle inscrit. Vérifier le résultat trouvé avec une autre technique de calcul du rayon de cercle inscrit.
- Pour un triangle quelconque, afficher le cercle inscrit, ainsi que son centre.
- Donner les caractéristiques des bissectrices extérieures et calculer les caractéristiques des cercles exinscrits (coordonnées du centre et rayon) pour les afficher.