« Programmation objet et géométrie/SmallTalk par l'exemple » : différence entre les versions
Contenu supprimé Contenu ajouté
Ligne 146 :
update
self doParentsExist ifTrue:
[self point: (parents first
</source>
Reste à savoir ce que représente l'addition de deux points pour ''DrGeoII''! C'est l'addition des coordonnées:
<source lang="smalltalk">
+ t1
t1 isPoint
ifTrue: [^ x + t1 x @ (y + t1 y)].
^ t1 adaptToPoint: self andSend: #+
</source>
Et la division d'un point par 2?
<source lang="smalltalk">
/ t1
t1 isPoint
ifTrue: [^ x / t1 x @ (y / t1 y)].
^ t1 adaptToPoint: self andSend: #/
</source>
C'est plus compliqué: Le nombre 2 est d'abord transformé en le point de coordonnées (2,2) puis la division coordonnées par coordonnées est effectuée entre les deux points. Au final, les deux coordonnées sont divisées par 2. Donc on retrouve le fait que l'abscisse du milieu est la moyenne des abscisses, mais avec plus de puissance (la division d'un point par un point ressemble à ce qu'on fait avec un tableur).
===Distance===
|