# -*- coding: utf-8 -*-

##  Name:           dessins_turtle.py
##  Modification:   CFV
##  Date: 	        avril 2014
##  Description:    dessins de formes au sein d'une matrice à l'aide de turtle

from turtle import *

def carre(taille, coul):
    """ fonction qui dessine un carre
        de côté taille et de couleur coul        """

    color(coul)  # permet de déterminer la couleur

    # on descend le pointeur
    down()
    begin_fill()     # commence à repérer une forme fermée pour la "remplir"

    for i in range(4):     # on dessine les 4 côtés du carré
        forward(taille)
        right(90)

    end_fill()    # la forme est fermée on arrête le remplissage
    up()

def trace_carre(lig, col, taille, coul):
    """ trace un carre au sein d'une matrice
        à la ligne lig et colonne coul
        la taille des côtés et la couleur sont fournies """

    # on fixe la couleur
    color(coul)
    # on change la forme du curseur
    shape("blank")

    # on recupère la taille de la fenêtre
    h = window_height()
    w = window_width()
    # on lève le crayon avant le déplacement
    up()
    # on se place à la position indiquée en paramètre par lig et col
    goto(-w//2 + col*taille, h//2 - lig*taille)

    down()
    # on fait le tracé demandé
    carre(taille, coul)
    up()

def trace_cercle(lig, col, taille, rayon, coul):
    """ trace un cercle au sein d'une matrice
        à la ligne lig et colonne coul
        la taille des côtés des cases, le rayon et la couleur sont fournis """

    # on fixe la couleur
    color(coul)
    # on change la forme du curseur
    shape("blank")

    # on recupère la taille de la fenêtre
    h = window_height()
    w = window_width()

    # on lève le crayon avant le déplacement
    up()
    # on se place à la position indiquée en paramètre
    goto(-w//2 + col*taille, h//2 - lig*taille)
    down()

    # on fait le tracé demandé en se plaçant au bon endroit au préalable
    right(90)
    forward(taille)
    left(90)
    forward(taille/2)

    begin_fill()
    circle(rayon)
    end_fill()

    up()


def trace_texte(lig, col, text, taille, coul):

        color(coul)
        # on recupère la taille de la fenêtre
        h = window_height()
        w = window_width()

        up()
        # on se place à la position du robot
        goto(-w//2 + col*taille, h//2 - (lig+1)*taille)
        down()

        # on écrit le type de robot

        write(text,  font=("Arial", -taille, "normal"))

if __name__ == '__main__':
    trace_cercle(50, 100, 5, 20, "green")
    carre(20, "red")
    trace_carre(5, 20, 20, "red")
    trace_texte(10, 30, "Top", 20,"blue")
    exitonclick()