Dr. Geo 12.07

Posté par  (site web personnel) . Édité par claudex, baud123 et B16F4RV4RD1N. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
25
5
juil.
2012
Éducation

Dr. Geo 12.07 est un environnement de programmation et de géométrie euclidienne interactive pour une utilisation de l’école primaire au lycée. Il fonctionne sous GNU/Linux, Mac OS X, Windows et Sugar pour portable XO.
Il est développé avec le langage et l'environnement Pharo Smalltalk permettant une complète introspection du code source depuis Dr. Geo lui-même.

Cette version 12.07 propose, outre les habituels correctifs de bogues, plusieurs améliorations :

  • nouvel outil pour éditer le style des objets,
  • traductions dans de nombreuses langues,
  • ajout de fonctions dans l'API Dr. Geo, pour par exemple faire des animations.

Outre les outils de construction habituels à la souris d'un logiciel de géométrie dynamique, Dr. Geo permet de décrire une figure entièrement avec son API et le langage Smalltalk.

Par exemple, on écrira dans l'outil Workspace cette figure Smalltalk :

|figure gobelet stats item|

stats:=Array new: 12 withAll: 0.
gobelet:=[(1 to: 6) atRandom].
figure := DrGeoCanvas new.

1 to: 10000 do: [:i | | somme |
        somme := gobelet value + gobelet value.
        stats at: somme put: ((stats at: somme) + 1)].

2 to: 12 do: [:i|
        item :=figure segment: i@0 to: i@((stats at: i) / 100).
        item color: Color red.
        item := figure point: i@0.
        item show; square; color: Color blue; name: i].

En exécutant ce code, nous obtenons les fréquences des différentes valeurs des lancers :

10'000 lancés de dés

Une nouvelle fonction d'animation rend maintenant les figures encore plus parlantes, l'exemple précédent devient :

|canvas s stats points|

points :=Array new: 12.
stats := Array new: 12 withAll: 0.

canvas := DrGeoCanvas new.
canvas fullscreen;
    scale: 30;
    centerTo: 6@10;
    gridOn.
2 to: 12 do: [:i |
    points at: i put: (canvas point: i@0.1).
    (points at: i) square; color: Color blue.
    s := canvas segment: i@0 to: (points at: i).
    s color: Color red].

canvas do: [
    1 to: 10000 do: [:i|
        s := 6 atRandom + 6 atRandom.
        stats at: s put: ((stats at: s)+1).
        (points at: s) 
            name: (stats at: s);
            moveTo: s @ ((stats at: s) / 100).
        canvas update]].

L'animation montre la course entre les différentes valeurs des lancers. Cette vidéo montre l'animation.

Aller plus loin

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.