WxGéométrie

Dynamic geometry, graph plotter, and more for french mathematic teachers.
Copyright (C) 2005-2007 Nicolas Pourcelot

Sommaire

  1. Licence

  2. Installation

  3. Premiers pas

    1. Le module de géométrie dynamique
    2. Le traceur de courbes
    3. La calculatrice
    4. Le module de statistiques
  4. Utilisation avancée

    1. Le fichier param.py
    2. La librairie mathlib
    3. La ligne de commande
  5. Comment contribuer ?

  6. Remerciements

I. LICENCE

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301

Ce programme est un logiciel libre; vous pouvez le redistribuer et/ou le modifier selon les termes de la GNU General Public Licence telle qu'elle a été publiée par la Free Software Foundation; soit la version 2 de la licence, ou (au choix) toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il puisse être utile, mais sans aucune garantie, pas même la garantie implicite qu'il puisse etre adapté à un usage donné. Pour plus de précisions, lisez la GNU General Public License.
Vous avez recu en principe une copie de la GNU General Public License en même temps que ce programme. Si ce n'est pas le cas, écrivez a l'adresse suivante : Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301


II. INSTALLATION

Pour fonctionner, ce programme nécessite la configuration logicielle suivante :


Remarque
: ces logiciels doivent être installés dans l'ordre mentionné.

Sous Windows, un redémarrage du système est conseillé après ces installations.

Après avoir téléchargé la dernière version de WxGeometrie (http://www.sourceforge.net/projects/wxgeometrie), dézippez l'archive dans un répertoire sur lequel vous avez les permissions nécessaires.
Vous pouvez lancer le programme en double-cliquant sur le fichier wxgeometrie.pyw .

Sous Windows :
Il existe désormais un programme d'installation de WxGéométrie.
Ce programme nécessite un accès à internet, car il télécharge les dernières versions de Python, et des autres librairies nécessaires (afin de ne pas alourdir inutilement le programme d'installation en incluant systématiquement tout).

Pour désinstaller WxGéométrie, il suffit de supprimer le répertoire d'installation du programme. En effet, pour l'instant, WxGéométrie n'écrit rien dans la base de registre.

Il existe également une version sans installation, qui ne nécessite pas la présence de Python.
Cette dernière version est surtout livrée à des fins de démonstration (ou pour être utilisée sur une clef USB, style Framakey) ; elle est  probablement moins stable (si quelqu'un veut reprendre et améliorer le projet ?).



III. PREMIERS PAS

Beaucoup d'options de WxGéométrie ne sont pas encore fonctionnelles.
Il ne s'agit pas de bugs en general, mais, simplement, du fait que ces options ne sont pas encore complètement écrites. Ainsi, un certain nombre de boutons et d'entrées du menu ne provoquent aucune action dans les versions actuelles. Ceci correspond à des fonctionnalités qui seront implementées dans les prochaines versions.

WxGéométrie est composée actuellement de 4 modules :
Note :
Les fonctionnalités du module de géométrie dynamique sont utilisables dans le traceur de courbes, et (en partie) dans le module de statistiques.

1. Le module de géométrie dynamique

Vous pouvez pour l'instant faire les actions suivantes :
Utilisation de la souris pour piloter le logiciel :

Note :
Pour la création des objets géométriques, il existe une abondante aide contextuelle dans chaque fenêtre de création d'objet.
Cliquez sur le point d'interrogation en haut de la fenêtre, puis sur un champ, pour obtenir une aide detaillée.
En cliquant avec le bouton du milieu de la souris dans un champ, vous ferez également apparaitre diverses propositions.

Vous pouvez utiliser les notations suivantes : [A B] pour le segment [AB], (A B) pour la droite (AB), et A>B pour le vecteur A->B.
Remarquez l'espace entre les lettres "A" et "B" dans les deux premiers cas.

Nom, étiquette et formule
Vous remarquerez que chaque objet possède quatre modes d'affichage : nom, étiquette, formule, ou aucun.
"Fenêztre de propriété"

Que signifient ces 4 modes ?

2. Le traceur de courbes

Vous pouvez pour l'instant faire les actions suivantes :

Le traceur de courbes supporte les fonctions définies par morceau, continues ou non.

Exemples :
1) Soit la fonction f, définie sur R-{0} par f(x)=1/x
Remplissez les champs de la manière suivante :
 [V] Y1= [ 1/x ] sur [ R-{0} ]

Notes : vous remplissez le premier champ avec 1/x (la fonction), le deuxième avec l'intervalle de définition, c'est-à-dire R-{0}.
Graphe de la fonction inverse.

2) Soit la fonction  f, définie sur [-2;0[ par f(x) = -1, et sur [0;1[ U ]2;3] par f(x) = x
Remplissez les champs de la manière suivante :
[V] Y2= [ -1|x ] sur [ [-2;0[|[0;1[U]2;3] ]

Notes : Vous remplissez le premier champ avec la fonction.
Comme elle est définie par morceaux, on utilise le symbole "|" comme séparateur: ce qui donne -1|x.
Vous remplissez le 2ème champ avec l'intervalle de définition.
Comme elle est définie par morceaux, on utilise le symbole "|" comme séparateur: ce qui donne [-2;0[|[0;1[U]2;3].
Graphe d'une fonction affine par morceaux.

3. La calculatrice

Son fonctionnement sera assez familier pour quiconque a déjà utilisé une calculatrice scientifique.
Elle permet de travailler sur des nombres réels ou complexes.
Par ailleurs, elle possède quelques fonctions d'arithmétique :

Enfin, elle supporte le calcul fractionnaire exact.

Note : Certaines fonctions mathématiques ne supportent pas encore les fractions.
Dans ce cas, décochez la case suivante :
 [V] Calcul exact si possible.

Les variables a, b, c, d, ... et A, B, C, D... peuvent être utilisées pour mémoriser des valeurs, ou définir des fonctions.

Exemples :
1) a = 25+7/4
2) f(x)=2x+17

Attention, les variables E, e et i sont protégées.

4. Le module statistiques

Ce module sert essentiellement à tracer des diagrammes, qui n'existent pas toujours sur tableur, ou qui y sont incorrectement définis.
A l'origine, ma motivation était essentiellement de pouvoir tracer des histogrammes, qu'OpenOffice.org® ou Excel® confondent avec les diagrammes en barre.
Il fait aussi la différence entre diagrammes en barres et en bâtons (contrairement à ce qu'on peut lire souvent, la différence essentielle n'est pas esthétique).
Voir à ce sujet par exemple un récapitulatif de Lubos Prchal à l'adresse suivante : http://www.karlin.mff.cuni.cz/%7Eprchal/fr/deug/tele/deug01.pdf.

Voici une présentation des principaux types de graphiques :

Diagrammes en barres :
Utilisés en particulier pour des séries à caractère qualitatif.
Exemple : la répartition des voyelles dans l'alphabet.

On sélectionne le mode :


On ajoute les valeurs et les effectifs (ou fréquences) qui leur correspondent.
La syntaxe est la suivante : « effectif * valeur » (valeur doit être entre guillemets, pour des valeurs non numériques).

Il ne reste plus qu'à compléter la légende :


Et à appuyer sur [Entrée] dans un des champs.
Le résultat est le suivant :



Diagrammes en bâtons :
Utilisés pour des séries à caractère quantitatif discret.
Exemple : la répartition des pointures de chaussures chez les femmes françaises adultes (2005).

On sélectionne le mode :


On ajoute les valeurs et les effectifs (ou fréquences) qui leur correspondent, et on complète la légende :


On presse la touche [Entrée] dans un des champs.
Le résultat est le suivant :




Histogrammes :
Utilisés pour des séries à caractère quantitatif continu.
On va reprendre l'exemple précédent, en regroupant les pointures par classe.

On sélectionne le mode :


On complète la rubrique « Regroupement par classes ».


Pour les histogrammes, il n'y a pas d'ordonnée, mais il faut préciser la nature de l'unité d'aire.


Et on appuye sur [Entrée].




Pour aller plus loin :

IV. UTILISATION AVANCEE

1. Le fichier param.py

Un grand nombre de paramètres peuvent être modifiés dans le fichier param.py avec un simple éditeur de textes.
Exemple:
Remplacez "affiche_axes = True" par "affiche_axes = False" pour que les axes ne soient plus affichés par defaut.

2. La librairie mathlib

Des fonctions mathématiques peuvent être simplement ajoutées à la calculatrice. Il suffit de les insérer à la fin du fichier fonctions.py du répertoire mathlib/.
Python est un langage de programmation simple et efficace ; si vous connaissez quelques rudiments en programmation, vous apprendrez vite à étendre les fonctionnalites de la calculatrice à vos besoins !
Exemple:
"def ppcm(a,b): return a*b/gcd(a,b)"

3. La ligne de commande

Introduction:
La ligne de commande servait à l'origine essentiellement à débuguer le programme.
(Ou à réaliser certaines opérations internes, etc...)
Depuis la version 0.101, son maniement est devenu plus aisé (et personnellement, je l'utilise assez fréquemment pour créer des objets géométriques).
Elle fonctionne pour l'instant dans le module géometrie, dans le module traceur, et dans le module statistiques.

Utilisation courante:
L'utilisation la plus courante est la création d'objets géométriques simples.
Quelques exemples parleront mieux qu'un long discours...

Exemples
1) "A=Point(1,2)" ou "A=(1;2)"
Création d'un point A de coordonnées (1 ; 2).
Attention au ";" dans le deuxième cas.

2) "AB=Segment(A,B)" ou "AB=[A B]"
Création du segment [AB].
Attention à l'espace entre les lettres dans le deuxième cas.

3) "d=Droite(A,B)" ou "d=(A B)"
Création de la droite (AB).
Attention à l'espace entre les lettres dans le deuxième cas.

4) "u=Vecteur(A,B)" ou "u=A>B"
Création du vecteur A->B.

5) "M=C+2*(A>B)"
Création du point M vérifiant C->M = 2 A->B.
Les parenthèses sont obligatoires.


Utilisation avancée:
Précédée de ":", la commande est interprétée comme un instruction Python.
Dans le cas contraire la commande se rapporte à la feuille en cours.

Précédé de "&", le résultat de la commande sera affiché dans la console.

Par ailleurs, "!n" fait référence au nième onglet ; "!" fait référence a l'onglet actuel.
Pour être exhaustif, on notera que "!1!" référence au canevas de l'onglet 1.
Logiquement, "!!" fait lui référence au canvas de l'onglet actuellement ouvert.
Enfin, "!:" fait référence à la feuille actuelle, et "!::" à son gestionnaire d'objets.

Ces raccourcis pratiquent mais peu intuitifs servent essentiellement au débogage...

Exemples :
1) ":print 'hello world !'"
Ceci va afficher 'hello wold !' sur la console.
Notes : ":& 'hello world !'" produirait le même resultat.
2) "&A"
Affiche, s'il existe, l'objet A dans la console.
3) "A.coordonnees(-2,3)"
En supposant que A soit un point, change les coordonnées de A en (-2,3).
4) ":!!fen((-5,2,-7,3))"
Change la fenêtre d'affichage en (-5,2,-7,3).
Notes : Il s'agit d'une commande de bas niveau, l'affichage n'est pas automatiquement rafraîchi.
La commande de haut niveau correspondante est :
":!!set_fenetre(-25,2,-7,3)"


V. COMMENT CONTRIBUER ?

Vous pouvez par exemple :


Je suis également ouvert à toute autre contribution, et je suis prêt à travailler en équipe... :-)


Je recherche en particulier (liste non exhaustive) :
  1. des personnes pour m'aider à maintenir et à améliorer :
  2. des personnes intéressées par la construction de nouveaux modules pour WxGéométrie.
    Je pense en particulier à des professeurs de mathématiques, de sciences-physiques, de technologie... qui auraient un peu d'expérience en programmation objet (mais pas nécessairement en python : python en lui-même s'apprend en une semaine).
    Une première expérience fructueuse a déjà commencée, en collaboration avec Christophe Vrignaud.
  3. des personnes pour me faire remonter des rapports de bugs, ou des suggestions. A deux exceptions près, les seuls échos que j'ai pu avoir, ce sont les statistiques de sourceforge. Je sais que le projet manque encore de maturité, mais au fil des versions, il y a désormais un peu de matière. Toutes les critiques sufisamment précises sont bonnes à prendre. ;-)

Note :
 une documentation spécifique pour développeurs se trouve dans le répertoire doc/developpeurs/.



VI. REMERCIEMENTS

Un grand merci à mon frère Thomas pour ses conseils initiaux et à Sophie pour ses idées ... et sa patience !

Merci également à tous ceux qui ont pris le temps de faire quelques commentaires sur ce programme (Enzo, Rhydwen Volsik, Robert Setif...), et m'ont encouragé à continuer.

Merci à Christophe Bal pour ses commentaires, et pour avoir proposé la syntaxe du module de Probabilités,

Remerciements tout particuliers à Christophe Vrignaud, auteur de Scicalc, qui a permis son intégration à Wxgéométrie.

Merci enfin à Stéphane Clément d'avoir fait entrer Wxgéométrie sur le wiki de l'académie d'Aix-Marseille.