# -*- coding: utf-8 -*-
__projet__ = "Chenille animée"
__nom_fichier__ = "cercle"
__author__ = "AJ Tinet"
__date__ = "février 2026"


# Import des classes et bibliothèques utiles
from forme import Forme
from point import Point
from turtle import *

# =============================================================================

# Définition de la classe Cercle
class Cercle(Forme):
    """ definit un cercle comme une forme + un rayon """

    def __init__(self, diametre, couleur, centre=None):
        """
        Constructeur de la classe Cercle.
        ----------------------------------------------------------------------
        :param diametre: Diamètre du cercle
        :type diametre: INT
        :param couleur: Couleur du cercle
        :type couleur: STR
        :param centre: Centre du cercle, defaults to None
        :type centre: Instance de POINT, optional

        """
        Forme.__init__(self, couleur, centre)
        self.diametre_ = diametre


    def __repr__(self):
        """
        Surcharge de print
        ----------------------------------------------------------------------
        :return: Description du cercle

        """
        ligne1 = Forme.__repr__(self)
        ligne2 = " ; diametre : " + str(self.diametre_)
        return ligne1 + ligne2


    def dessiner(self):
        """
        Méthode qui dessine un cercle avec le module turtle
        ----------------------------------------------------------------------
        
        """
        
        # on supprime l'impression de la tortue
        ht()   

        up()
        # placement au debut du dessin
        goto(self.centre_.getx(), self.centre_.gety() - self.diametre_ // 2)
        color(self.coul_)
        begin_fill()
        down()
        # dessin du cercle
        circle(self.diametre_ // 2)
        end_fill()
        up()


    def effacer(self):
        """
        Méthode qui efface un cercle, i.e. dessine un cercle blanc de même 
        centre et de même diamètre.
        ----------------------------------------------------------------------
        
        """
        
        tracer(0)
        blanc = Cercle(self.diametre_, "white", self.centre_)
        blanc.dessiner()
        tracer(1)

# =============================================================================
        
# Programme principal : Test de la classe Cercle        
if __name__ == "__main__":
    
    # Dessin de la pyramide
    test = Cercle(75, 'magenta', Point(50,-50))

    print(test)
    
    test.dessiner()
    test.effacer()
    
    exitonclick()