Exercice 4

Le but de cet exercice est d'écrire une classe Triangle permettant de manipuler des triangles dans un espace à 2 dimensions. Par exemple, on pourrait, à partir de la définition d'un triangle, calculer son périmètre ou son aire.

Un triangle, instance de la classe Triangle étant défini par trois points dans l'espace, il est nécessaire de définir tout d'abord une classe Point permettant de définir un point dans l'espace à partir de son abscisse x et de son ordonnée y.

Le script python principal est le suivant:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python

import Geometry
import math

A = Geometry.Point(0., 0.)
B = Geometry.Point(1., 3.)
C = Geometry.Point(5., -3.)
T = Geometry.Triangle(A, B, C)

print "Le point A: %r" %(A)
print "Le point B: %r" %(B)
print "Le point C: %r" %(C)
print
print "distance(A,B) = %f" % (Geometry.Point.distance(A,B))
print "distance(A,C) = %f" % (Geometry.Point.distance(A,C))
print "distance(B,C) = %f" % (Geometry.Point.distance(B,C))
print
print "angle(A,B,C) = %f" % (Geometry.Point.angle(A,B,C)/math.pi*180.0)
print "angle(B,C,A) = %f" % (Geometry.Point.angle(B,C,A)/math.pi*180.0)
print "angle(C,A,B) = %f" % (Geometry.Point.angle(C,A,B)/math.pi*180.0)
print
print "Le triangle ABC: %r" % (T)
print "son perimetre vaut %f" % (T.perimetre)
print "son aire vaut %f" % (T.aire)

Son exécution fournit le résultat suivant:

Le point A: (   0.000,   0.000)
Le point B: (   1.000,   3.000)
Le point C: (   5.000,  -3.000)

distance(A,B) = 3.162278
distance(A,C) = 5.830952
distance(B,C) = 7.211103

angle(A,B,C) = 52.125016
angle(B,C,A) = 25.346176
angle(C,A,B) = 102.528808

Le triangle ABC: (   0.000,   0.000)*(   1.000,   3.000)*(   5.000,  -3.000)
son perimetre vaut 16.204332
son aire vaut 9.000000

Ecrire les classes Point puis Triangle.

(Pour rappel)