« Mathématiques avec Python et Ruby/Points en Python » : différence entre les versions

aucun résumé des modifications
Aucun résumé des modifications
Aucun résumé des modifications
==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]]
1 277

modifications