easydessinfr

Accueil
Télécharger

easydessinfr.py

 

@version: 1.0(2014-11-29)

F. Laroche, http://pythonpourenfants.free.fr
Easydessinfr fournit quelques outils de base pour gérer les graphismes en français.
Ne nécessite aucune connaissance particulière du programmeur en mathématiques.
Ce module n'a pas de prétention autre que de simplifier la construction de dessins avec des termes en français.
Si vous souhaitez davantage de possibilités vous pouvez facilement rajouter des options ou d'autres fonctions.
Easydessinfr nécessite Tk version 8.0 ou plus.

Informations de License

 
Modules nécessaires
       
Tkinter ou Tkinter
Tix
Tkconstants
Tkdnd 
Tkinter en français (incomplet)

tkSimpleDialog
tkColorChooser
tkCommonDialog
tkFileDialog
tkFont
tkMessageBox
 Easygui

 
Fonctions principales
       

Liste des fonctions

Contantes

cree_rectangle

cree_image

coordonnees_rotation

distance

couleurs

centre_rectangle

cree_etoile

coordonnees_rotation_ovale

calcule_ecart

couleurRGB

cree_arc_cercle

 

 

signe

 

cree_cercle

coordonnees_sur_droite

parametres_parabole

rand1

cadre_dessin_base

cree_ligne

coordonnees_sur_ovale

coordonnees_sur_parabole_simple

 

cree_grille

cree_texte

 

coordonnees_sur_parabole

 

Constantes

convdegrad (= math.pi/180)  #conversion des degrés en radian pour utiliser les fonctions sin et cos
convraddeg (= 180/math.pi)    #conversion des radians en degrés pour utiliser les fonctions sin et cos

Liste de couleurs de base : colors=['white','black','grey','blue','cyan','green','yellow','red','pink'
            ,'orange','magenta','brown','violet','maroon','purple','ivory','SkyBlue1','light grey']

Dictionnaire de concordance entre noms de couleurs :
            couleursfr={'blanc':'white','noir':'black','gris':'grey','bleu':'blue','cyan':'cyan','vert':'green'
            ,'jaune':'yellow','rouge':'red','rose':'pink','orange':'orange','magenta':'magenta','brun':'brown','violet':'violet'
            ,'marron':'maroon','pourpre':'purple','ivoire':'ivory','BleuCiel':'SkyBlue1','GrisClair':'light grey'}

Nb_couleursfr =len(couleursfr)  

couleurs(coul)

    Traduction des couleurs de base : dans les fonctions du module on donnera les couleurs en anglais, en français ou sous la forme #rrggbb.
    On peut rajouter des couleurs dans les deux ensembles : colors et couleursfr.
    Pour les conversions, utiliser couleurs(nomCouleurFrancais).
    Voir rgb.txt pour les noms anglais avec les correspondances numériques.

couleurRGB(r,g,b):

    Convertit un triplet d'octets r, g, b en valeur hexadécimale (ex : #A1259F).

cadre_dessin_base(fenetre=None, large=500, haut=500, fond='ivoire', nombre_col=10, nombre_ligne=10, Okbouton='Quitter')

    Dessine un canevas dans lequel on peut dessiner.
    Un seul bouton est prévu : nombre_col et nombre_ligne sont utilisés pour les positionnements
    dans la fenêtre principale. Il est très simple de rajouter des boutons.
    La sortie donne les identifiants du canvas et du bouton.

cree_rectangle(cadre=None,x0=0,y0=0,x1=0,y1=0,fond='blanc',trait='noir',nom=None)

    Dessine un rectangle entre les points (x0,y0) et (x1, y1); il faut donner un nom !

centre_rectangle(cadre, nom)

    Renvoie les coordonnées du centre d'un rectangle défini par deux sommets opposés.

cree_grille(cadre=None, ncolonnes=20, nlignes=20, affiche=True, trait='noir', couleur='blanc'):

    Dessine une grille de ncolonnes sur nlignes ;
    Chaque case a un nom : 'numcol/numlig' qui permet de faire des modifications facilement.
    affiche est un booléen qui dit si on dessine la grille ou pas.

cree_arc_cercle(cadre=None, x0=0, y0=0, x1=0, y1=0, debutangle=0, angle=0, fond='blanc', trait='noir', nom=None)

    Dessine un arc de cercle d'angle angle (en degrés) démarrant à debutangle (mesuré par rapport à un rayon horizonrtal)
    dans un rectangle compris entre les points (x0, y0) et (x1, y1).
    Il faut donner un nom !

cree_cercle(cadre=None,x_C=0,y_C=0,rayon=10,fond='blanc',trait='noir',nom=None)

    Dessine un cercle de centre (x_C, y_C) et de rayon rayon.
    Il faut donner un nom ! 

cree_ligne(cadre=None,x0=0,y0=0,x1=0,y1=0,trait='noir',epaisseur=1,nom=None):

    Dessine un segment entre les points (x0, y0) et (x1, y1) ;  il faut donner un nom !

cree_texte(cadre=None, x0=0, y0=0, texte='', police=('Helvetica', '16'), trait='noir', nom=None):

    Dessine un texte centré au point (x0, y0) ; il faut donner un nom !

cree_image(cadre=None, nomimage='', x0=0, y0=0, trait='', nom=None):

    Charge l'image nomimage et la place centrée au point (x0, y0) ; il faut donner un nom à l'objet !

cree_etoile(cadre=None, xC=0, yC=0, rayon=50, angle_depart=0, nombre_sommets=5, fond='blanc', trait='noir', epaisseur=1, plein=True, nom=None):

    Dessine une étoile au centre xC, yC, dans un cercle de rayon rayon ;
    le dessin se fait sur la base des sommets d'un polygone régulier :
    l'orientation du premier segment est donnée par angle_depart (en degrés).

coordonnees_sur_droite(xA, yA, xB, yB, t)

    Retourne les coordonnées d'un point M sur une droite passant par deux points A et B. t est un nombre décimal.
    Pour que le point M soit entre A et B, il faut que t soit compris entre 0 et 1.

coordonnees_sur_ovale(xA, yA, xB, yB, t)

    Retourne les coordonnées d'un point sur un ovale délimité par deux points A et B.
    t est un angle en degrés.
    On peut modifier la fonction en ajoutant un angle de depart t0.

coordonnees_rotation(xM, yM, x_C, y_C, angle_deg)

    Retourne les coordonnées d'un point M', image d'un point M de coordonnées (xM, yM)
    par la rotation de centre C (x_C, y_C) et d'angle en degrés angle_deg.

coordonnees_rotation_ovale(xM,yM,x_C,y_C,a,b,angle_deg)

    Même chose que pour la rotation mais sur un ovale.

parametres_parabole(xA, yA, xB, yB, xC)

    Retourne 5 nombres décimaux : u, v, a, b, c qui sont nécessaires à l'obtention des coordonnées
    d'un point se déplaçant sur une parabole.

coordonnees_sur_parabole_simple(u, v, a, b, c, t)

    Retourne les coordonnées d'un point M se déplaçant sur une parabole ABC en suivant les valeurs de t entre 0 et 1 :
    à t = 0, M est en A, à t = 1, M est en C.
    Les nombres u, v, a, b, c sont obtenus avec la fonction parametres_parabole précédente.

coordonnees_sur_parabole(xA,yA,xB,yB,xC,t):

    Retourne les coordonnées d'un point sur une parabole commnçant en A, de sommet B et finissant en C (on a juste besoin de l'abscisse de C).
    t est un nombre décimal compris entre 0 et 1.
    Cette fonction fait les mêmes opérations que les deux précédentes.
    Pour une parabole orientée 'normalement' inverser y à la sortie par rapport à la hauteur du canevas.

distance(A,B)

    Calcul de la distance entre les deux listes A=[a,b] et B=[c,d].

calcule_ecart(a,longueur):

     Renvoie la deuxième coordonnée d'un vecteur (a,b) ou (b,a) dont on connait la longueur.

signe(a)

    Renvoie le signe de a (+1 ou -1).

rand1( )    

     Renvoie +1 ou -1 aléatoirement.

 

 INFORMATION de LICENSE Easydessinfr version 1.0
Copyright (c) 2014, Frédéric Laroche. Tous droits réservés.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
    1. Redistributions of source code must retain the above copyright notice,
       this list of conditions and the following disclaimer. 
    2. Redistributions in binary form must reproduce the above copyright notice,
       this list of conditions and the following disclaimer in the documentation and/or
       other materials provided with the distribution.  
    3. The name of the author may not be used to endorse or promote products derived
       from this software without specific prior written permission. 
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ABOUT THE EASYGUI LICENSE
This license is what is generally known as the "modified BSD license", aka "revised BSD", "new BSD", "3-clause BSD".
See http://www.opensource.org/licenses/bsd-license.php
This license is GPL-compatible.
See http://en.wikipedia.org/wiki/License_compatibility
See http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses
The BSD License is less restrictive than GPL. It allows software released under the license to be incorporated into proprietary products. 
Works based on the software may be released under a proprietary license or as closed source software.
http://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22New_BSD_License.22.29