« Mathématiques avec Python et Ruby/Points en Python » : différence entre les versions
Contenu supprimé Contenu ajouté
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 78 :
==Distance==
Pour simplifier l'écriture de la distance ''AB'' on va encore utiliser les [[Mathématiques_avec_Python_et_Ruby/Vecteurs_en_Python|vecteurs]], la distance ''AB'' étant égale à <math>\|\overrightarrow{AB}\|</math>:
<source lang="ruby">
def distance(self,p):
return self.vecteur(p).norme()
</source>
=Application au problème=
Voici l'objet ''Point' en entier:
<source lang="python">
from math import *
class Point:
def __init__(self,x,y):
self.x=x
self.y=y
def affichage(self):
return '('+str(self.x)+';'+str(self.y)+')'
def milieu(self,p):
return Point((self.x+p.x)/2,(self.y+p.y)/2)
def vecteur(self,p):
return Vecteur(p.x-self.x,p.y-self.y)
def distance(self,p):
return self.vecteur(p).norme()
</source>
==Nature de ABC==
Pour savoir si ABC est isocèle, on peut calculer les longueurs de ses trois côtés:
<source lang="python">
a=Point(-1,3)
b=Point(5,1)
c=Point(1,5)
print(a.distance(b))
print(a.distance(c))
print(b.distance(c))
</source>
Visiblement, ABC n'est pas isocèle. Mais
<source lang="python">
print(a.distance(b)**2)
print(a.distance(c)**2+b.distance(c)**2)
</source>
La réciproque du [[w:Théorème de Pythagore|théorème de Pythagore]] nous apprend que ABC est rectangle en C, donc d'[[w:Hypoténuse|hypoténuse]] ''AB''.
==Centre du cercle==
Donc le cercle circonscrit a pour diamètre ''[AB]'', donc pour centre le milieu de ''[AB]'':
<source lang="python">
m=a.milieu(b)
print(m.affichage())
</source>
==Rayon du cercle==
On peut donc diviser par 2 la distance ''AB'' mais aussi vérifier que ''M'' est équdistant de ''A'', ''B'' et ''C'':
<source lang="python">
print(m.distance(a))
print(m.distance(b))
print(m.distance(c))
</source>
==Figure==
On pourrait utiliser ''TkInter'' pour dessiner le tout (y compris le cercle) mais la figure ci-dessous a été faite avec [[w:Ruby|Ruby]], ce langage permettant assez facilement de fabriquer un fichier au format [[w:Scalable Vector Graphics|svg]]:
[[Fichier:GeomRuby1.svg|center]]
|