mercredi 4 janvier 2017

Cercle inscrit

Dans un article précédent, nous montrions comment écrire une description textuelle du cercle circonscrit à un triangle. Cette fois-ci nous expliquons comment écrire une description textuelle du cercle inscrit à un triangle Cette description sera toujours en français, et légèrement plus complexe.


Nous déclarons trois variables, puis nous créons une figure avec notre triangle:
| figure centre point |
figure := DrGeoCanvas new pleinEcran.
figure polygone: {-2@0 . 2@0 . 1@3 }.
Le centre du cercle inscrit du triangle est à l'intersection des bissectrices du triangle. Nous demandons à Dr. Geo cette intersection :
centre := figure 
   intersectionDe: (figure bissectriceSommet: -2@0  cote1: 2@0 cote2:  1@3)
   et: (figure bissectriceSommet: 2@0 cote1: 1@3 cote2: -2@0).
Le cercle inscrit est tangent aux trois côtés du triangle, nous cherchons donc un point de contact entre le cercle et un des côtés du triangle. Ce point est tel que la distance entre le côté et le centre est la plus courte ; il nous faut donc construire la perpendiculaire à ce côté passant par le centre, l'intersection entre cette perpendiculaire et le côté sera notre point de contact entre le côté et le cercle :
point := figure
   intersectionDe: 
      (figure perpendiculaireA: (figure segmentDe: 2@0 a: -2@0) passantPar: centre)
   et: (figure segmentDe: 2@0 a: -2@0).
Dans le code ci-dessus, nous indiquons à Dr. Geo le segment par la commande : figure segmentDe: 2@0 a: -2@0. Nous répétons celle-ci autant de fois que nécessaire. Bien sûr nous aurions pu affecter le résultat de cette commande dans une variable pour réutilisation, par exemple :
cote := figure segmentDe: 2@0 a: -2@0.
point := figure
   intersectionDe: (figure perpendiculaireA: cote passantPar: centre)
   et: cote.
...mais nous avons préféré réduire le nombre de variable, et par ailleurs Dr. Geo sait détecter la répétition de commandes identiques et éviter les duplications inutiles d'objets géométriques.
Pour finir le cercle inscrit s'obtient directement par :
figure cercleCentre: centre passantPar: point
Le script complet est donc :
| figure centre point|
figure := DrGeoCanvas new pleinEcran.
figure polygone: {-2@0 . 2@0 . 1@3 }.
centre := figure 
   intersectionDe:  (figure bissectriceSommet: -2@0  cote1: 2@0 cote2:  1@3)
   et: (figure bissectriceSommet: 2@0 cote1: 1@3 cote2: -2@0).
point := figure
   intersectionDe:
      (figure perpendiculaireA: (figure segmentDe: 2@0 a: -2@0) passantPar: centre)
   et: (figure segmentDe: 2@0 a: -2@0).
figure cercleCentre: centre passantPar: point 
Copier et coller ce script dans un espace de travail (workspace) Dr. Geo, puis le sélectionner et l'exécuter avec Ctrl-d, donnera la figure suivante :

Aucun commentaire:

Enregistrer un commentaire