# -*- coding:utf-8 -*-

__projet__ = "CoursS6"
__nom_fichier__ = "classeCercle"
__author__ = "A-J. Tinet"
__date__ = "février 2023"

# =====================================================================================================================

#                                     Ex 7 - Les chenilles animées
#                                                   Classe CERCLE

# =====================================================================================================================


from math import pi
from turtle import *

# Import des bibliothèques
from classeForme import Forme
from classePoint import Point


# Définition de la classe
class Cercle(Forme):

    def __init__(self, diametre, couleur, centre=None):
        """
        Méthode constructeur
        :param diametre: nombre entier, diametre du cercle
        :param couleur: chaîne de caractère, couleur du cercle (plein)
        :param centre: objet Point, centre du cercle
        """
        Forme.__init__(self, couleur, centre)
        self.d_ = diametre

    def calculeSurface(self):
        """
        :return: Aire du cercle
        """
        return (pi / 4.0) * (self.d_) ** 2

    def dessiner(self):
        """
        Dessine le cercle à l'aide de turtle
        :return:
        """
        rayon = self.d_ // 2

        tracer(0)
        up()  # on lève le crayon
        # placement au debut du dessin calculé par rapport au centre
        goto(self.centre_.getx(), self.centre_.gety() - rayon)
        color(self.couleur_)

        begin_fill()
        down()
        # dessin du cercle
        circle(rayon)
        end_fill()
        up()
        tracer(1)

    def effacer(self):
        """
        Efface le cercle en dessinant un cercle blanc par dessus
        :return:
        """
        blanc = Cercle(self.d_, 'white', self.centre_)

        blanc.dessiner()

if __name__ == '__main__':
    mon_cercle = Cercle(50, "green")
    mon_cercle.dessiner()

    mon_cercle2 = Cercle(50, "blue", Point(20, 10))
    mon_cercle2.dessiner()
    exitonclick()