Skip to content

aliounebfam/Projet1-POO2-GL-2021

 
 

Repository files navigation

Projet1-POO2-GL-2021

C'est un projet de Programmation Orientee Object 2 realise par Fatou DIOUF et Makhtar SARR, etudiants en Licence 3 Informatique option Genie Logiciel. Il s’agira de construire une bibliothèque de fonction, qui permettra le dessin de figures en utilisant l’outil turtle de python.

Bibliotheque genieCivilOuvrage2D.py

Cette bibliotheque importe la bibliotheque turtle. Elle contient une variable figure de type Turtle() et les methodes suivantes:

  • cercle;
  • demi-cercle;
  • carre;
  • triangle;
  • rectangle;
  • polygone;
  • trapeze;
  • losange;
  • elypse.

Diagramme des flux

DF

Tableau des flux

Programme Principal Fournit(Entrées) Reçoit(Sorties)
cercle rayon Rien
demi-cercle rayon Rien
Carre cote Rien
triangle coteA, coteB, coteC Rien
rectangle longueur, largeur Rien
polygone nbrCote, cote1 Rien
trapeze base1, base2, coteD, coteG Rien
losange cote Rien
elypse rayon Rien
### Fonction cercle #### Description Cette methode dessine un **cercle** en utilisant la methode `circle` de la bibliotheque `turtle`. Elle prend en parametre le `rayon` du cercle a tracer en pixel, la `couleur` qui est optionnelle. #### Code python ```python def cercle(rayon, couleur = "black"): figure.color(couleur) figure.circle(rayon) ``` #### Resultat ```python cercle(100) ``` ![cercle](images/cercle.png) ### Fonction demi-cercle #### Description Cette methode va nous permettre de dessiner un **demi-cercle** avec toujours la methode `circle` de `turtle`, mais dans ce cas nous allons renseigner l'angle d'arret. Elle prend un parametre obligatoire, le `rayon` et un optionnel, la `couleur`. #### Code python ```python def demiCercle(rayon, couleur = "black"): figure.left(90) figure.color(couleur) figure.circle(rayon, 180) ``` #### Resultat ```python demiCercle(100) ``` ![demiCercle](images/demi-cercle.png) ### Fonction carre #### Description Cette methode va nous permettre de dessiner un carre avec `turtle` en utilisant une boucle `for`. Elle prend un parametre obligatoire, `cote` du carre en pixel et deux optionnels, la `couleur` et le remplissage ici `remplis`. #### Code python ```python def carre(cote, couleur = "black", remplis = "white"): figure.color(couleur, remplis) for i in range(4): figure.forward(cote) figure.left(90) ``` #### Resultat ```python carre(100) ``` ![carre](images/carre.png) ### Fonction triangle #### Description Cette methode va nous permettre de dessiner un **triangle** avec `turtle` en utilisant le théorème d’**Al Kashi! **. Elle prend trois parametres obligatoires, `coteA`, `coteB`, `coteC` qui represente la mesure des trois cotes en pixel et deux optionnels, la `couleur` et le remplissage ici `couleur1`. #### Code python ```python def triangle(coteA, coteB, coteC, couleur = "black", couleur1 = "white"): figure.color(couleur, couleur1) angleB = degrees(acos(((coteA**2) + (coteB**2) - (coteC**2))/(2*coteA*coteB))) figure.forward(coteA) figure.left(180 - angleB) angleC = degrees(acos(((coteB**2) + (coteC**2) - (coteA**2))/(2*coteB*coteC))) figure.forward(coteB) figure.left(180 - angleC) figure.forward(coteC) angleA = degrees(acos(((coteB**2) + (coteA**2) - (coteC**2))/(2*coteB*coteA))) figure.left(180 - angleA) ``` #### Resultat ```python triangle(100, 90, 70) ``` ![triangle](images/triangle.png) ### Fonction rectangle #### Description Cette methode va nous permettre de dessiner un **rectangle** avec `turtle` en utilisant une boucle `for`. Elle prend deux parametres obligatoires, `longueur`, `largeur` en pixel et deux optionnels, la `couleur` du contour et le remplissage ici `couleur2`. #### Code python ```python def rectangle(longueur, largeur, couleur = "black", couleur2='black'): figure.color(couleur, couleur2) if longueur != largeur: for i in range(2): figure.forward(longueur) figure.left(90) figure.forward(largeur) figure.left(90) else: print("erreur") ``` #### Resultat ```python rectangle(100, 50) ``` ![rectangle](images/rectangle.png) ### Fonction polygone #### Description Cette methode va nous permettre de dessiner un **polygone** avec `turtle` en utilisant une boucle `for`. Elle prend deux parametres obligatoires, `nbrCote`, `cote1` et deux optionnels, `cote2` et `cote3`. #### Code python ```python def polygone(nbrCote, cote1, cote2 = 0, cote3 = 0): if nbrCote == 3 and cote3 != 0: triangle(cote1, cote2, cote3) elif nbrCote == 4 and cote2 == 0: carre(cote1) elif nbrCote == 4 and cote3 == 0: rectangle(cote1, cote2) elif nbrCote > 4 and cote2 == 0: for i in range(nbrCote): figure.forward(cote1) figure.left(360/nbrCote) else: print("erreur") ``` #### Resultat ```python polygone(5, 50) ``` ![polygone](images/polygone.png) ### Fonction trapeze #### Description Cette methode va nous permettre de dessiner un **tapeze** avec `turtle` en utilisant des methodes telles que `forward` et `left`. Elle prend 4 parametres obligatoires, `base1`, `base2`, `coteD`, `coteG` et deux optionnels, `couleur` et `couleur2`. #### Code python ```python def trapeze(base1, base2, coteD, coteG, couleur = "black", couleur2 = "black"): figure.color(couleur, couleur2) figure.forward(base1) figure.left(30) figure.forward(coteD) figure.left(150) figure.forward(base2) figure.left(150) figure.forward(coteG) ``` #### Resultat ```python trapeze(85, 210, 75, 75) ``` ![trapeze](images/trapeze.png) ### Fonction losange #### Description Cette methode va nous permettre de dessiner un **losange** avec `turtle` en utilisant des methodes telles que `forward` qui nous permet d'avancer et `right` qui nous permet de tourner a l'angle voulu dans une boucle `for`. Elle prend un parametre obligatoires, `cote` et deux optionnels, `couleur` et `couleur2` pour le contour et le remplissage. #### Code python ```python def losange(cote, couleur = "black", couleur2 = "black"): figure.color(couleur, couleur2) figure.right(-30) for i in range(4): figure.forward(cote) figure.right(60*(1+i%2)) ``` #### Resultat ```python losange(100) ``` ![losange](images/losange.png) ### Fonction elypse #### Description Cette methode va nous permettre de dessiner un **elypse** avec `turtle` en utilisant des methodes telles que `forward` qui nous permet d'avancer, `left` qui nous permet de tourner a gauche selon l'angle voulu, `circle` et une boucle `for`. Elle prend un parametre obligatoires, `rayon` et un optionnel, `couleur`. #### Code python ```python def elypse(rayon, couleur = "black"): figure.color(couleur) figure.left(135) for i in range(2) : figure.circle(rayon, 90) figure.circle(rayon//4, 90) ``` #### Resultat ```python elypse(100) ``` ![elypse](images/elypse.png) Cliquer ici pour voir le code complet de [`genieCivilOuvrage2D.py`](https://github.com/makhtar-sarr/Projet1-POO2-GL-2021/blob/main/genieCivilOuvrage2D.py) ## Pont Dans ce fichier on a dessine un pont grace aux bibliotheques `genieCivilOuvrage2D` et `turtle`. Ci-dessous se trouve le resulte du pont. ![pont](images/pont.png) Cliquer ici pour voir le code complet de [`pont.py`](https://github.com/makhtar-sarr/Projet1-POO2-GL-2021/blob/main/pont.py) ## Facade Dans ce fichier on a dessine la facade d'un maison grace aux bibliotheques `genieCivilOuvrage2D` et `turtle`. Ci-dessous se trouve le resulte de la facade. ![facade](images/facade.png) Cliquer ici pour voir le code complet de [`facade.py`](https://github.com/makhtar-sarr/Projet1-POO2-GL-2021/blob/main/facade.py) ## Documentation Cliquer ici pour voir la [documentation](https://github.com/makhtar-sarr/Projet1-POO2-GL-2021/blob/main/Projet1%20POO2%20LI3%20GL.pdf)

About

Il s’agira de construire une bibliothèque de fonction, qui permettra le dessin de figures en utilisant l’outil turtle de python.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%