« Mathématiques avec Python et Ruby/Points en Python » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 33 : | Ligne 33 : | ||
=Avec deux points= |
=Avec deux points= |
||
Le plus simple quand on a deux points, c'est leur milieu, parce que c'est aussi un point (donc un objet de même nature). |
|||
==Milieu== |
==Milieu== |
||
Les coordonnées du milieu d'un segment sont les moyennes de celles des extrémités: |
|||
<source lang="python"> |
|||
def milieu(self,p): |
|||
return Point((self.x+p.x)/2,(self.y+p.y)/2) |
|||
</source> |
|||
En se rappelant que l'équivalent en [[w:Java (langage)|Java]] de ''self'' est ''this'', on remarque une certaine ressemblance avec les codes sources de logiciels de géométrie dynamique: |
|||
Tout d'abord, [[w:CaRMetal|CaRMetal]]: |
|||
Ensuite, [[w:GeoGebra|GeoGebra]]: |
|||
==Vecteur== |
==Vecteur== |
Version du 4 janvier 2011 à 05:59
L'objet Point est une bonne manière d'aborder la programmation objet. En géométrie repérée, un point est constitué de deux nombres, son abscisse et son ordonnée.
Voici l'énoncé de l'exercice:
Dans un repère orthonormé, on considère , et . Calculer les distances AB, AC et BC et en déduire la nature du triangle ABC. Puis en déduire les coordonnées de son cercle circonscrit.
Création de l'objet
Le point de coordonnées (x,y) est, en Python, une classe:
class Point:
def __init__(self,x,y):
self.x=x
self.y=y
Lorsqu'on crée un point, ses coordonnées sont stockées à l'intérieur de l'objet. On note p.x et p.y les coordonnées de p.
Affichage
La méthode peut ressembler à ceci:
def affichage(self):
return '('+str(self.x)+';'+str(self.y)+')'
mais on peut envisager d'y rajouter des instructions avec TkInter pour réellement dessiner le point sur la figure. Voir à ce sujet le chapitre sur les fonctions.
Avec deux points
Le plus simple quand on a deux points, c'est leur milieu, parce que c'est aussi un point (donc un objet de même nature).
Milieu
Les coordonnées du milieu d'un segment sont les moyennes de celles des extrémités:
def milieu(self,p):
return Point((self.x+p.x)/2,(self.y+p.y)/2)
En se rappelant que l'équivalent en Java de self est this, on remarque une certaine ressemblance avec les codes sources de logiciels de géométrie dynamique:
Tout d'abord, CaRMetal:
Ensuite, GeoGebra: