Aller au contenu

Utilisateur:Alain Busser/Les mains dans le cambouis avec DrGeoII

Un livre de Wikilivres.

Creation d'une méthode pour un objet existant

[modifier | modifier le wikicode]

D'après le livre "Pharo par l'exemple", créer une méthode est aussi aisé (et dangereux) qu'en modifier une. En fait, il suffit de modifier également le nom de la méthode pour éviter de l'écraser. Dans ce qui suit, on va par exemple créer une nouvelle méthode pour l'objet Point, qui va réaliser la transformation conforme dans .

Où placer la méthode?

[modifier | modifier le wikicode]

Pour bénéficier tout de suite d'un héritage intéressant, on utilise le browser de DrGeoII (en réalité, de Pharo) pour chercher, dans la classe Graphics-Primitives, l'objet Point, qui possède déjà des point functions, il suffit d'en choisir une (par exemple sign) et d'écraser son texte par

squared
    "répond le point dont l'affixe est le carré complexe du point de départ"
    "ou éleve le point au carré, d'où le nom de la méthode..."

    ^ (x*x - (y*y) @ (2*x*y)).

À ce stade on voit que le signe d'un point s'appelle maintenant squared ce qui fait tout de même un peu apprenti sorcier!


Mais en sauvegardant le résultat, moyennant l'entrée du nom du programmeur et un éventuel débogage, on constate qu'une nouvelle méthode a effectivement été créée:


Test de la méthode

[modifier | modifier le wikicode]

Pour tester la nouvelle méthode, on peut ouvrir un "workspace" et y écrire

(3@2) squared.

Ensuite, il suffit par exemple de sélectionner le tout et de l'"inspecter" (ou écrire (3@2) squared inspect. et le "DoIt"er...):


On voit que .

Utilisation dans DrGeoII

[modifier | modifier le wikicode]

Puisque dorénavant cette méthode fait partie de Smalltalk, elle est accessible à DrGeoII aussi, par exemple sous la forme d'un script DrGeo, qu'on peut appeler "carre" et dont le script appelle la méthode squared précédemment créée:

carre: UnPoint
    "élève un point (ou plutôt son affixe) au carré"
    ^UnPoint point squared.

Le script apparaît sans la fenêtre de scripts de DrGeoII:


Il suffit de l'enregistrer pour pouvoir l'utiliser. Ce qui se fait en cliquant sur l'icône de scripts de DrGeoII, en le choisissant:


Après ça, en cliquant sur un point pour le sélectionner, DrGeoII n'attend plus qu'un clic pour afficher les coordonnées de son transformé:


Ci-dessus, le point P a été placé sur i, ce qui illustre que le carré de celui-ci est -1.

À partir des coordonnées créées par le script, on peut créer un point (avec l'outil point par coordonnées de DrGeoII) et voir comment fonctionne la transformation.

En répétant les dernières étapes ci-dessus avec un point P lié à une droite, l'outil "lieu" permet de vérifier que l'image de celle-ci est une parabole. Avec un cercle (en vert), l'image (en rouge) peut prendre des allures très différentes, dont voici un exemple:



Exercice: Ajouter au même objet Point une méthode joukovski qui réalise la transformation de Joukovski.

Version Scratch

[modifier | modifier le wikicode]

Comme Scratch est aussi écrit en Smalltalk, et dispose aussi d'un browser et de workspaces, on peut y refaire la manip.

Accès à Squeak depuis Scratch

[modifier | modifier le wikicode]

Un Control+Shift+clic sur la boucle du R de ScRatch permet d'abandonner le mode plein écran et d'accéder à la machine virtuelle Squeak.

Écriture de la méthode

[modifier | modifier le wikicode]

Un clic (gauche) sur la zone vide permet d'ouvrir le browser, où on retrouve l'objet Point (c'est un objet de smalltalk, pas de DrGeoII, il est donc aussi là avec Pharo et Scratch):


Un nouveau clic dans la zone vide permet d'ouvrir un workspace, accessible à l'inspecteur: