HISTORIQUE
______________________

version 0.1x.x :

    Premiere version en Python avec Tkinter. Mise en place du cadre du programme.

version 0.2x.x :

    Derniere version avec Tkinter.
    Le programme gere les points libres, segments, droites, cercles de rayon donnes.
    Version perdue (?).

version 0.3x.x :

    premiere version en WxPython. Mise en place du cadre du programme.

version 0.4x.x :

    Gestion des points libres, segments, droites, barycentres et milieux.
    Gestion du zoom.
    
version 0.5x.x :

    Refonte de l'organisation interne des objets.
    Ceci permet maintenant de supprimer ou de renommer des objets.
    Gestion des vecteurs.
    Ajout de points definis par une relation vectorielle,
                            ->      ->     ->
    ex: le point N tel que  AN = -3 AB + 2 BC.


version 0.6x.x :

    Premiere version fonctionnelle.
    
    Suppression d'un bug lors de l'ouverture des objets.
    Exportation en formats images.
    Selection des points libres avec la souris.
    Creation des objets via des menus.


version 0.7x.x :

    Derniere version en pur WxPython.
    
    Ameliorations :
    
    Majeures :
    Ajout de nouveaux objets : cercles divers, perpendiculaire, mediatrice, parallele.
    Gestion du zoom par selection (CTRL + Clic).
    Annulation de la derniere commande avec Ctrl+Z (Ctrl+Y pour refaire)
    Creation d'un systeme de boites de dialogue (pour accelerer le developpement)
    
    Mineures :
    Ajout d'une boite de dialogue pour la fenetre d'affichage.
    Amelioration de l'affichage (affichage des points en dernier).
    Meilleure interaction du zoom (molette de la souris) avec l'historique des commandes
    Attribution automatique de noms aux objets (de la forme "@" + str(self.lieu.compteur))
    Memoriser le repertoire de sauvegarde
    Suppression du bug de redimensionnement.
    Creation d'une classe mere pour les bipoints + optimisations diverses du code
    PointFinal devient Point_final, et sa boite de dialogue est optimisee
    Le deplacement de la fenetre d'affichage (clic droit) apparait dans l'historique
    Correction de get_window() qui renvoit maintenant ((xmin,xmax),(ymin,ymax)) ; ajout de fenetre().
    Correction d'un bug pour les droites sous WxGTK : les fonctions de dessin buguent si les coordonnees en pixels depassent + ou - 32768.
    

    Bugs connus :
    
    Majeurs :
    Pas d'actualisation automatique de l'affichage quand un objet est supprime
    2 bugs concernant l'annulation - restauration :
    - l'affichage n'est pas correctement rafraichi apres restauration
    - la modification de la fenetre d'affichage n'est pas correctement annulee si la fenetre change de taille
    
    Mineurs :
    Bug pour l'affichage des vecteurs la premiere fois (couleur)
    Bug lorsque la souris quitte la fenetre en mode "selection"

    Note : ces bugs sont probablement assez faciles a resoudre, mais ils sont lies au systeme d'affichage des versions 0.3 a 0.7...
    Comme le systeme d'affichage devait changer avec la serie 0.8, je n'ai pas cherche a les corriger.


version 0.8x.x :

    Premiere version (tres incomplete !) en WxPython + Matplotlib.
    
    Utilisation de la librairie matplotlib pour l'affichage.
    Ajout d'un traceur de graphes.
    Correction d'un bug au lancement sous Windows.
    Adaptation du menu au contexte.
    Retouche de la fonction commande.
    Exportation en .ps, .eps, .svg ajoutees (mais plus d'exportation en .jpg).
    (Exportation en .png maintenue, exportation en .bmp incorrecte).
    Barre d'outils avec de jolis boutons en .png.

    
version 0.9x.x :

    Premiere version utilisable en WxPython + Matplotlib.
    Les fonctions de la version 0.7.x fonctionnent a 95%.
    La fonction draw() de matplotlib est lente !
    
    Ameliorations :
    
    Majeures :

    Refonte de l'architecture du programme en modules  bien distincts.
    Utilisation de matplotlib pour optimiser l'affichage dans la partie geometrie (affichage lisse).
    Ajout d'une calculatrice.
    Le bloc commande est reecrit entierement.
    Ajout d'une boite de dialogue pour supprimer des objets.
    Support des syntaxes R-{1,5,7}, [2;5]U{6}, etc... dans le traceur.
    Un minimum d'aide est fournie (enfin!).
    
    Mineures :
    
    Correction de l'overflow pour des fonctions comme x -> x^32 sur [-10;10].
    Suppression d'artefacts  pour des fonctions comme x -> x^7 sur [-10;10].
    Les fonctions non prolongeables par continuite sont correctement affichees (x->1/x sur ]0;+inf[).
    Correction de bug : impossible de tracer une fonction sur [0;n].
    Correction de bug : erreur lors du trace de 1/(2x) sur [2;+inf[ (il faut mettre [2.;+inf[).
    Correction de bug : erreur lors du trace de 1/x sur ]-n;0[ (beaucoup de temps perdu !).
    Plus grande souplesse de syntaxe dans le traceur (3cos(2x) est accepte pour 3*cos(2*x)).
    Embellit l'affichage de la selection (selection legerement coloree).
    Ajout d'options pour obtenir un affichage "carre", enlever le repere.
    Quelques optimisations d'affichage, mais ca reste lent en plein ecran...
    L'historique prend en compte toutes les fonctions de recadrage de la fenetre.
    Le coefficient de zoom est inverse (auparavant, zoom(2) "dezoomait").
    Correction de plusieurs bugs sous Windows (en particulier, le module affichage utilisait 100% des ressources systemes).
    Correction d'un bug lors de la selection par Ctrl+Bouton de gauche :
    apres 2 selections consecutives, le rectangle de selection ne s'affiche pas.
    Correction de bug : lorsqu'on annule pour la premiere fois (affichage non actualise).
    Dans la calculatrice : numerotation des lignes de maniere fixe, et changement du fonctionnement de la fonction ans().
    Dans la calculatrice : possibilite de creer des fonctions mathematiques (a,b,c,...,z), en tapant f(x)=2x par exemple.
    Dans la calculatrice : gestion des fractions.
    Dans la calculatrice : ajout de quelques fonctions arithmetiques (pgcd, ppcm, factoriel, facteur, diviseur) de base.
    Dans la calculatrice, la notation 5e-2 est de nouveau comprise, E represente desormais la constante de l'exponentielle.
    Ecriture de fonctions "standards" a usage interne, regroupees dans le module LIB_fonctions.
    Correction de bug: quand on redimensionne la fenetre, les elements de taille fixe changent de taille (cf WxSizeEvent).
    Dans la calculatrice, correction de bug : a =2 , a==2 ne marchent pas.
    Resolution plus fine en .PNG
    Dans la calculatrice : rudiments de calcul formel (racines).
    Creation d'un menu pour les intersections de droites.
    Calculatrice : utilisation possible de la virgule comme separateur decimal (et du point-virgule pour les listes).
    Dans la calculatrice, correction de bug : f(x)=500*t ne marche pas.    
    Calculatrice : copie du resultat dans le presse-papier comme TEXTE BRUT.
    Ajout de verifications sur les noms d'objets (ex: les caracteres ">", "@" doivent etre interdits)




Versions 0.10x.x :
------------------

    Le but initial de cette serie etait de rendre le module geometrie utilisable,
    en y implementant les objets courants.
    Finalement, il ressort aussi qu'un gros travail de reorganisation interne a ete fait,
    afin de rendre l'architecture plus claire, et extensible a de nouveaux modules.


    Ameliorations :

    Majeures :
    
    Versions 0.100 - 0.105 :

    Ajout de nouveaux objets : intersections diverses.
    Ajout de nouveaux objets : glisseurs divers.
    Ajout de nouveaux objets : polygones, bissectrice, centre de gravite, orthocentre...
    Refonte du systeme d'objets.
    (Un gros, gros boulot de fait ! Le systeme d'objets datait de la version 0.5, et ma connaissance de Python s'est bien amelioree depuis.)
    Gestion de l'enregistrement revue - format XML.
    (Pas de possibilite de sauvegarder la calculatrice pour l'instant)
    Possibilite de creer des objets geometriques dans la partie traceur.
    Meilleure gestion des menus (reecriture de la classe mere).
    Chaque onglet correspond desormais a un module, qui herite de 2 classes au choix.
    Creation d'une API (encore rudimentaire) pour pouvoir rajouter facilement de nouveaux modules.
    Meilleure gestion des feuilles (en particulier, la liste des feuilles ouvertes apparait dans le menu).
    Nouvelle implementation de l'historique.
    Ajout d'un module de statistiques.
    Verification du type des parametres lors de la creation d'objets geometriques.
    Detection des objets a proximite du pointeur.
    Refonte de l'API du module affichage. Le moteur graphique proprement dit est 10 fois plus rapide.
    Nombreux changement dans l'affichage des points et le calcul des coordonnees.
    L'affichage des objets geometriques est environ 3 fois plus rapide.
    Retouche du systeme de variables.
    Les boutons du module geometre fonctionnent, et il est possible de nommer les points dans la foulee.
    Ajout de nouveaux objets : Texte
    Possibilite de nommer un point apres l'avoir cree, ou de renommer un point existant,
    simplement en le selectionnant et en tapant ensuite au clavier.
    

    Version 0.106:
    Integration de SciCalc, grace au travail de Christophe Vrignaud. Un grand merci a lui !
    Acces aux proprietes des objets via un menu graphique.
    Ajout de nouveaux objets: demi-droites, demi-cercles, arc de cercles, et leurs intersections.

    
    
    Version 0.107:
    Meilleure gestion des enregistrements et des exports.
    Support (probablement encore imparfait) d'unicode.
    Concrêtement, il est enfin possible d'utiliser des caractères accentués.


    version 0.108:
    Support complet des étiquettes pour tous les objets courants.
    Résolution exacte de systèmes d'équations et d'inéquations, de degrés inférieurs ou égal à 2, à une variable.


    version 0.109:
    Nouveaux objets: cercle défini par 3 points, arc de cercle défini par 3 points, arc de cercle orienté, disque.
    Possibilité de coder les segments et les arcs de cercle de même longueur.
    Prévisualisation des objets lors de la construction.
    Possibilité de construire la plupart des objets avec la souris.
    Passage d'une première partie du code en unicode (la phase de transition risque d'être longue).
    Nouveaux objets: parallélogramme, représentant d'un vecteur, angles.
    Outil pinceau pour copier les styles.
    Evaluation de formules dans les objets textes ou les labels.

    version 0.109.5:
    Mini-module concernant les arbres de probabilité.
    Mini-module concernant les surfaces.
    Représentation de suites dans le module Traceur.
    Version 100% unicode (mais il reste probablement des bugs).
    Possibilité de tourner sur un CD (et tout autre endroit sans permission d'écriture)


    version 0.110:
    Outil de rapport de bug et détection des mises à jours.
    Ajout des transformations géométriques usuelles, possibilité d'animer des variables.





    Mineures :

    Versions 0.100 - 0.105 :
    
    Ajout des objets angle oriente, produit scalaire, droite definie par une equation.
    Le menu de creation des intersection de cercles exclut l'intersection deja existente.
    Selection des glisseurs avec la souris.    
    Possibilite de distinguer deux objets confondus.
    Possibilite de zoomer meme en l'absence de souris a roulette.
    Affichage d'un quadrillage.
    Correction de bugs de la calculatrice:
    - La simplification des racines se faisait mal avec des fractions (Rac([[Frac(2),Frac(0)]]))
    - Les corrections automatiques de la calculatrice sont plus precises.
      Par exemple, rac(2) est converti en sqrt(2), mais Frac(2) ne doit pas etre converti en Fsqrt.
    - Certaines corrections syntaxiques ne s'effectuaient pas lors de la creation de fonctions.
    - (x-4)x(x+4) est compris.
    - ln(1/4), sin(3/7), etc... ne marchait pas
    Le reglage de la fenetre ne marchait plus !
    Ajout de __eq__(), __rmul__, __add__ etc... aux objets de classe Variable()
    Le zoom avec le menu ne marchait pas dans le traceur (c'est la partie geometrie qui zoomait!)
    Les variables ont une methode varier(), pour creer simplement des animations.
    Simplification de la fonction enregistrer() (utilisee en fin de creation d'objets).
    Si "ses deux points" sont confondus, une droite n'est plus definie (evite le ZeroDivisionError).
    Les coordonnees du curseur s'affichent a droite (pour ne plus interferer avec les messages).
    Correction d'une faille de securite de l'interpreteur.
    ((A>B) + (A>C)).coordonnees() marche desormais.
    Correction de bugs pour les objets Milieu et Somme_vecteurs, Vecteur_libre.
    Les titres s'adaptent a l'onglet en cours.
    Ajout de "Fermer" dans le menu (ferme la feuille courante).
    Possibilite de creer des vecteurs libres via le menu.
    Possibilite de confirmer ou non avant de quitter.
    Utilisation de sous-repertoires pour faire du rangement, et rendre plus clair l'ajout de nouveaux modules.
    Possibilite de regler plus finement l'affichage des axes et du quadrillage.
    Possibilite de commencer a graduer avec une autre valeur que zero.
    Les graduations n'interferent plus avec les fleches des axes, c'est pas tres joli ;)
    Suppression de la sauvegarde en bmp, qui marchait mal.
    creation d'une fonction safe_eval, qui detecte le type avec des regexp au lieu d'evaluer a priori.
    (il suffit que safe_eval(repr(x)) == x soit verifie pour les principaux types utilises pour la sauvegarde :
    int, float, bool, None, tuple, str, list, dict)
    Chaque objet geometrique possede une methode "distance_de(self, x, y)" 
    Meilleure gestion des messages systeme.
    Ajout d'une case a cocher pour le deboguage.
    La plupart des parametres d'affichage sont desormais sauvegardes quand on enregistre une figure.
    Correction de bug si on ferme toutes les feuilles dans le module traceur.
    Correction de bug: 3^(1/4) retourne None dans la calculatrice (en mode exact).
    Affichages de texte sur les axes plus propre, en utilisant la propriete alignement:    
    Sauvegarde et restauration des proprietes des objets.
    Possibilite de bloquer les objets libres (points, glisseurs) pour qu'ils ne puissent pas etre deplaces par accident.
    Correction d'une faille de securite (&[getattr(A,"_"+"_feuille_"+"_") ])
    Correction d'un (vieux) bug dans la gestion de la memoire :
    Un objet pouvait avoir des vassaux qui n'existaient plus ;
    Au bout d'un certain temps de temps de travail, le gaspillage de memoire etait tres consequent.
    Mise en gras des objets selectionnes.
    Amelioration du rendu des graphiques (choix des unites) dans le menu statistiques.
    Corrections de bugs dans le menu statistiques.
    Gestion correcte des objets de type 'long' dans la calculatrice.
    Correction de bug : B=Point("A.x","cos(A.x)")
    Possibilite de creer du texte avec des formules mathematiques.
    Si le mode debuguage n'est pas actif, les fenetres de creation d'objet ne se ferment plus en cas d'erreur.
    Divers petits reglages dans l'affichage (zorder...)
    Un "diagramme circulaire" est toujours circulaire ;-)
    Correction de bug: matplotlib plante quand on lui demande d'afficher du texte trop loin
    (style un texte de coordonnees 3.97613044e+013,-8.36025000e+013).
    Correction de quelques bugs lors de l'initialisation des objets
    (et reecriture de la fonction enregistre()).
    Ajout d'un attribut self.fixe au canevas pour empêcher les changements de fenetre.
    Correction de bug: quand un segment devient tres petit, distance_inf plante.
    Support de R+, R-, R*, R*+, R*-, R+*, R-* dans le traceur.
    Correction de quelques bugs dans le traceur.
    (7 over {-2x+1} sur R-{0.5}  -> la partie droite ne s'affichait pas)
    Les objets invisibles peuvent etre rendus invisibles, ou supprimes par clic-droit.
    Support de la syntaxe LATEX-like de matplotib.
    Message d'erreur explicite en bas de la fenetre quand on trace sqrt ou ln sur R.
    Correction d'une faille de securite dans le traceur.
    Quelques ameliorations dans le traceur (interpretation correcte de R+-{0} par exemple).
    Correction de bug: si on sauvegarde une variable texte style "$\alpha=3$", cela devient "$\\alpha=3$"
    -> matplotlib plante quand on essaie d'ouvrir le fichier.
    Export et sauvegarde simultanes.
    Fermeture plus propre du programme en cas de bug dans l'affichage.
    (fermeture de toutes les feuilles avant de quitter le programme).
    Correction de bug : Le "zoombox" ne se declenchait pas quand on depassait la fenetre d'affichage.
    Correction de bug : si on deplace la vue en faisant sortir le pointeur de la fenetre,
    et qu'on essaie d'annuler juste apres (Ctrl+Z), l'annulation ne marche pas. 
    Creation de methodes __contains__ pour les cercles, polygones,...
    Possibilite de toujours garder un repere orthonorme.
   Quand on utilise les boutons pour creer une figure geometrique, une intersection d'un segment et d'une droite est possible, de meme que pour un cote d'un triangle et une droite.
    (on n'est plus oblige de creer d'abord la droite qui inclut le segment ou le cote !)
    Il y avait confusion entre 'e' et 'E' sur la calculatrice
    -> 3e-3 a ete remplace par 3E-3 a l'affichage, et le 'e' reserve a l'exponentielle.
    

    version 0.106:
    Utilisation de "from __future__ import division" pour que par defaut, 2/3 soit traite comme 2./3.
    -> adaptation de tout le contenu de WxGeometrie (sic!)
    Implementation de la boite a moustaches pour le module de stats.
    Possibilite de sauvegarde pour le module de statistiques.
    Chargement d'un enregistrement automatiquement avec le bon module.
    -> rajout dans le menu d'"Ouvrir ici." pour forcer le chargement dans le module ouvert.
    Acceleration du chargement d'un fichier .geo en gelant l'affichage pour le contenu de <Figure></Figure>.
    (pour eviter qu'il ne s'actualise a chaque instruction).
    Nouvelle fonction print_error():
    try:
        1/0
    except:
        print_error()
        print "salut !"
        print "et on continue comme avant...!"
    Force l'utilisation de Numeric au demarrage.
    Réécriture et standardisation de la méthode self.existe()
    self.__repr__ dans objets.py renvoit toutes les infos de style, pour permettre un chargement plus rapide d'une feuille (pour eviter de mettre des A.style() et compagnie...).
    Mineur : suppression de l'instruction pour rafraichir la feuille a la fin de chaque fichier.
    Ajout de nombreux tests d'erreurs pour qu'une erreur ne freeze plus completement l'affichage.
    (Malheureusement, ces tests ont ralenti l'affichage...)
    Optimisation du code de reconnaissance pour compenser plus ou moins.
    Un cote doit etre selectionne de preference a un polygone.
    -> rajout d'un attribut niveau (float) (+/- zorder) qui indique dans quel ordre selectionner les objets.
    Quelques corrections de bugs concernant les racines et leur affichage.
    ex: 58 +  - 31*sqrt(5) s'affiche maintenant 58 - 31*sqrt(5).
    Correction de bug : tangente en un cercle quand le point est sur le cercle.
    Selection des textes plus facile.
    Correction d'un gros bug introduit une ou deux version auparavant (qui touchait les mediatrices notamment).
    -> mise en place d'un outil pour faciliter le debugage dans geolib
    Ajout d'un zoom automatique.
    Chaque objet a une methode _espace_vital() -> (xmin, xmax, ymin, ymax).
    Correction de bug - calculatrice : 81000000/149598000000 renvoyait None (probleme avec le type "long")
    Liste des objets accessible dans le menu (permet en particulier de reafficher les objets masques)
    Acceleration (tres importante !) de la detection des droites, segments, demi-droites.
    Creation d'une fonction produit_scalaire dans mathlib, utilisee dans geolib, au lieu de la classe Produit_scalaire.
    Correction de bug : la bissectrice etait mal definie.
    Verification des conditions d'existence des angles.
    Import des fichiers .geo precedents(remplacement de "'label': None, " par "'label': '', 'legende': 1, ")
    Possibilite de deplacer un point en dehors de la feuille.
    Optimisation et ameliorations de divers objets de geolib (cercles, angles, polygones, ...)
    Gel de l'affichage quand on applique une meme propriete a un grand nombre d'objets, pour accelerer.
    Les valeurs des objets de type "variable" sont recalculees uniquement si necessaire.



    version 0.107:
    Ajout des fonctions limite() et derive() dans la calculatrice (rudimentaires !).
    Dans le menu "?", mettre en dessous de "Notes de version" une entree "Informations systeme".
    -> version de Python, de WxPython, de Numeric, de Matplotlib (et eventuellement du l'OS)
    (cf. "import platform")
    Correction d'un bug a la fermeture quand la pile de messages etait vide.
    Support du Drag&Drop de fichiers .geo
    Optimisations dans geolib pour le calcul d'intersections (classe Polynome remplacee par une fonction)
    Quand on deplace un objet avec la touche MAJ enfoncee, les positions de l'objet se limitent au quadrillage.
    Ajoute d'un bouton "Ouvrir" et d'un bouton "Enregistrer".
    Les proprietes des cotes ne sont plus perdues lors de l'enregistrement.
    Apres avoir modifie la couleur d'un objet, la fenetre principale de WxGeometrie ne passe plus en arriere-plan.
    Les bases de la gestion des polynomes en X ont ete posees dans la calculatrice (X est desormais un nom reserve).
    Rajout d'une fenetre pour entrer les infos sur le fichier .geo (titre, auteur, ...)
    Correction d'un bug potentiel pour la fenetre Propriete des objets (suivant l'endroit d'ou est lance la fenetre)
    Correction d'un bug dans la multiplication de 2 polynomes.
    Possibilite d'associer un fichier .geo a l'executable de la version sans installation
    Correction d'un bug (tres genant !) lors de l'export en .png
    Fermeture de l'application meme en cas de bug dans la procedure de fermeture (!)
    Les cases a cocher des menus sont desormais synchronisees automatiquement avec les parametres reels.
    Possibilite de (de)bloquer l'affichage en mode orthonorme.
    Le fichier param.py est accessible dans la version sans installation.
    Correction d'un bug mineur lors du redimensionnement d'une fenetre



    Version 0.108:
    Meilleur support des polynomes (corrections de bugs, ajouts de nouvelles méthodes, etc...).
    Correction d'un bug sur l'affichage des vecteurs.
    Correction d'un bug sur les unions d'intervalles.
    Dans l'onglet "Informations" de la mini-fenetre "Proprietes" d'un objet, ajout d'un bouton "actualiser".
    Ajout d'une liste de fonctions dans le menu de la calculatrice.
    Amélioration des modes valeurs exactes/valeurs approchées
    Correction d'un bug dans l'affichage du module calculatrice, lorsque les messages s'accumulent.
    Quand on fait un clic avec le bouton du milieu sur le champ de saisie de la calculatrice, la liste des fonctions apparait.
    Bug lié au menus, quand on éditait graphiquement les propriétés d'un objet (et qui empechait entre autres l'annulation).
    Quand on créé des points, on n'est plus obligé d'appuyer systématiquement sur [Entrée] pour les nommer.
    Ajout d'un patch pour ouvrir correctement les anciens fichiers .geo.
    Edition du label d'un objet en mode multiline, ajout d'une entrée pour masquer le nom/label de l'objet.
    Possibilité de nommer les lignes, etc... comme les points.




    Version 0.109:
    Correction de bug:  Quand on supprime un objet, le label doit disparaitre aussitôt.
    Nombreuses optimisations dans geolib, en remplaçant les classes par des fonctions dans les calculs intermédaires.
    Optimisation de la classe Centre_cercle_circonscrit.
    Correction de bug: un point sur un arc de cercle se retrouvait parfois en dehors de l'arc.
    Creation d'une librairie specifique pour regrouper toutes les constantes, au lieu de les mettre dans param.
    La console possède maintenant un mode d'execution rapide (chargement des fichiers), et un mode d'exécution interne.
    Choix de la taille et la position des flêches, pour l'arc orienté et le vecteur.
    Codage automatique des longeurs et des angles (détection des longueurs égales, des angles égaux, et des angles droits).
    Refonte du système de mise en gras des objets sélectionnés.
    Dans le module geometre, le premier point du polygone reste en gras, tant que le polygone n'est pas fermé.
    Fermeture d'une feuille avec Ctrl+W
    Les entrées non implémentées du menu sont désormais indiquées, pour les distinguer de bugs.
    Inutile d'appuyer sur [Entrée] après avoir (re)nommé un objet désormais.
    Ajout d'une option "trace" pour les points.
    Affichage avancé des styles dans Proprietes_objet.
    Calculatrice: bug concernant la racine carrée introduit dans la 0.108.
    Meilleur gestion du focus de la fenêtre et du canevas.
    Utilisation de la fonction emplacement() pour éviter des bugs potentiels si le répertoire de travail changeait.
    Correction de bug: bouton "style" dans Proprietes_objet pour des objets sans étiquette
    Avant l'export en png/eps, on s'assure qu'il n'y a plus d'objet en gras.
    Meilleur gestion des caractères accentués dans la ligne de commande.
    Lorsqu'on clique deux fois de suite sur le même point, on ne crée plus un segment (de longueur 0).
    Correction des conditions d'existence des arcs et cercles définis par 3 points.
    Correction d'un bug concernant la factorisation des polynômes. ex: factorise((X+7)**2)
    Correction d'un bug concernant les sommes de sommes (sic) de vecteurs.
    Ajout des méthodes add() et mult() aux Variables.
    Bug mineur dans propriétés objets (cases grisées non affichées correctement)
    Correction d'un bug dans la sauvegarde des propriétés des étiquettes des côtés d'un polygone.
    Les polygônes générent eux-même leurs sommets manquants (parallélogramme par exemple).
    Dans le module géométrie, le repère est orthonormé par défaut ; les axes ne sont pas être affichés.
    Affichage de la première graduation, même lorsqu'il y a un quadrillage.
    Corrections de plusieurs bugs concernant les arcs de cercle.
    Amélioration du format d'enregistrement (pour les polygones)
    Possibilité de détecter les objets invisibles à proximité du pointeur.
    Correction d'un bug dans les propriétés d'une feuille.
    Quand mode est "repère orthonormé", une nouvelle feuille est désormais toujours en repère orthonormé.
    Bug dans le déplacement du label des angles non orientés.
    Bug dans l'initialisation des variables (synchronisation tardive de la feuille)



    Version 0.109.5 :
    Correction de bug : Zoombox en repère orthonormé.
    Un polygone en construction n'apparait plus fermé.
    Correction de plusieurs bugs mineurs dans les propriétés avancées des objets.
    La gestion des niveaux des objets (déterminant leur superposition) a été revue.
    Passage à matplotlib version 0.90
    Affichage du repere sous forme de vecteurs plus facile.
    Un clic avec le bouton du milieu de la souris dans les champs des boîtes de dialogue de création d'objets
    permet d'afficher des propositions d'objets du bon type.
    Les variables géométriques supportent directement les fonctions usuelles (sinus, cosinus, ...)
    Correction d'un bug dans la gestion de la hierarchie des objets dépendants de variables.
    Vérification de l'absence de références circulaires lors de la redéfinition d'une variable.
    Correction d'un bug dans le programme d'installation (Windows)
    La tentative d'import d'un module non disponible ne provoque plus d'erreur
    Ajout de nouvelles options dans le programme d'installation (Windows)
    (choix des composantes, possibilité d'installer pour tous les utilisateurs.)
    Correction d'un bug dans les diagrammes en boîte avec matplotlib 0.90.
    


    Version 0.109.6 :
    Dissociation des méthodes _set_val et _get_val, _set_coordonnees et _get_coordonnees, etc.
    Une partie du code consacré à la gestion de l'existence et la valeur des objets, et à leur mise en cache, a été réécrit et clarifié.
    Correction d'un bug lors de lors de certaines annulations (bug lié au mauvais rafraichissement du cache des variables)
    Optimisation du code pour les intersections de cercles, et dans une moindre mesure, pour toutes les intersections.



    Version 0.109.7 :
    Correction de bugs spécifiques à linux (mais il en reste hélas...)
    La méthode __contains__ de geolib supporte désormais autre chose que des points :
    accélère les tests d'existence d'intersections (pas besoin de créer des objets Point)
    Mémorisation des paramètres quand on quitte le programme (mais pas encore d'API pour les modifier)




Versions 0.11x.x :
------------------

Buts de cette série :
- gestion correcte des options et les sauvegardes (via une interface graphique). -> reporté à la série... ??
- intégration des courbes à geolib. -> reporté à la série 0.12x
- gestion complète des variables. -> fait à 95% (finalisation dans la série 0.12x).



    Ameliorations :

    Majeures :

    version 0.110:
    Outil de rapport de bug et détection des mises à jours.
    Ajout des transformations géométriques usuelles, possibilité d'animer des variables.
    
    
    version 0.111:
    Adaptation à la librairie numpy et à python 2.5 (python 2.4 reste supporté pour l'instant).
    Possibilité de redéfinir des objets existants (malgré certaines limitations).
    Ajout des polygones réguliers
    

    version 0.112:
    Adaptation à matplotlib 0.90.1
    Adaptation à matplotlib 0.91.1
    Adaptation à matplotlib 0.91.2
    Réécriture de la calculatrice
    
    
    
    
    Mineures :

    Version 0.110 :
    Corrections de diverses régressions.
    Réécriture de la méthode de rafraichissement des objets, qui est désormais la même pour tous les objets.
    Support rudimentaire des matrices.
    Support d'un nouveau format de fichier compressé, nommé 'geoz'.
    Refonte de la calculatrice.
    Bases de calcul formel.
    
    Version 0.111 :
    Possibilité de copier l'image du canvas dans le presse-papier.
    Correction de bug : l'import des modules se fait maintenant APRES le chargement des préférences globales.
    Ajout d'un bouton demi-droite.
    Correction d'un bug dans le positionnement des labels dans certains cas (ZeroDivisionError)
    Correction d'un bug concernant le rafraichissement d'objets.
    Ajout d'une option pour aimanter la grille.
    Réécriture des méthodes _call de geolib en vue d'un code plus uniforme.
    Console: correction d'une faille de sécurité : Point().ancetres.func_globals["os"].system("notepad.exe")
    Correction d'un (gros) bug lors de l'export lorsque le nom de fichier ou le chemin d'accès comporte un accent.
    Ajout de la tangente dans les boutons de WxGéométrie.
    Correction de bugs pour la tangente.
    Un objet dont le nom commence par "_" ne s'affiche pas par défaut, ni son étiquette.
    Correction de bug : rc(1.1) dans la calculatrice.
    Correction de plusieurs bugs concernant les intersections entre droites et cercles.
    New-style classes pour geolib - enfin !
    Système de mise à jour des styles par défaut (style de lignes, etc.) depuis param.py
    -> correction de plusieurs bugs liés.
    Lors de la construction d'un objet, un clic sur le dernier point le supprime du cache.
    Fleches doubles (ajout d'un parametre aux vecteurs, pour permettre une double fleche).
    Calculatrice : nouveau message : 'La fonction "u" est définie par u: k -> 2*k + 1.'
    Modification simplifiée des propriétés des arbres de probabilités.
    Correction de bug : pi et de e n'étaient pas reconnus partout (patch eval_restricted).
    Corrections mineures sur la calculatrice.
    Meilleure gestion des traces.
    Ajout de 2 nouveaux boutons (zoom et sélection - F1).
    Suppression/édition des objets d'une zone sélectionnée.
    Réécriture d'une partie des classes Polygone et Triangle en tirant parti des nouveaux types de classes (méthode __new__).
    Ajout d'une option pour relier les points aux axes.
    Correction de bug de l'installeur (installation dans un dossier comportant une lettre accentué)
    Meilleur support des répertoires à caractères non ASCII (il reste probablement encore qqs bugs)
    
    version 0.112:
    Calcul exact des dérivées.
    Meilleur support des primes, secondes... dans la partie géométrie. (Ex: M')
    Changements mineurs dans la gestion des étiquettes
    Sélection dynamique de numpy/Numeric (utilisation de numpy de préférence)
    Utilisation de l'attribut ._visible = False au lieu de dessin vides dans matplotlib.
    Raccourci clavier: [ESC] pour annuler une construction en cours.
    Meilleure gestion du Focus pour le canvas.
    Correction d'un bug dans l'affichage des résultats de la calculatrice sous Linux.
    Meilleur support de la syntaxe de OpenOffice.org dans la calculatrice.
    Possibilité de sauver les paramètres dans un dossier .wxgeometrie du dossier de l'utilisateur.
    Passage de Scicalc en unicode
    La calculatrice supporte quelques commandes LaTeX
    Correction d'un bug dans la simplification de certaines racines
    Ajout d'un module pour générer des tableaux de variation en LaTeX
    Régression corrigée : En mode formel, 28^-5 doit donner la valeur exacte.
    Réécriture de la fonction regexp (pylib/fonctions.py) avec re.sub, pour l'accélérer.
    Quand on veut quitter, puis qu'on fait [Echap] pour annuler l'action et fermer la boîte de dialogue, ça ne ferme plus le programme (ouf !)
    Régression corrigée : sqrt(sqrt(2)) ne fonctionne pas en mode exact.
    Régression corrigée : en mode approché, f(x)=cos(x)-x puis f(0.7) donnait cos(0.7) - 0.7 au lieu de la valeur approchée.
    Possibilité de passer des options en ligne de commande à WxGéométrie. Ex : wxgeometrie -o version_wxpython=2.6
    Correction de bug pour "developpe(30*(-(4+x)/3+(2-x)/5))", "factorise(a^2+a-2)"
    Amélioration des simplifications dans la calculatrice
    Diverses retouches et optimisations dans le traçeur (arcs et points aux extrémités d'une courbe)
    Interpolation linéaire et de degré 2
    Correction d'une faille de sécurité importante (exec après retour à la ligne)
    Menu pour redéfinir le repère
    Quelques quadrillages proposés par défaut
    Résolutions de conflits dans l'espace des noms dûs au passage à matplotlib 0.90+ sans doute
    API : possibilité de retour aux valeurs par défaut des paramètres
    
    version 0.112.1:
    Correction d'une regression dans le menu concernant les quadrillages
    
    version 0.112.2:
    Correction d'un bug concernant les objets nommés avec des ' ou des " (ex: M')





COMMENTAIRES
______________________


Certaines anciennes portions de codes proviennent de WxPython: (A Demonstration).
En particulier, ceci explique que certains commentaires soient en anglais ; a l'occasion je les traduirai.

Thanks to Gordon Williams for his so well written and commented plot.py library.
I learned a lot reading it, and according to its license, used freely some pieces of its code.

"And now, something completely different..."
