Giter Site home page Giter Site logo

aliounebfam / projet1-poo2-gl-2021 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from makhtar-sarr/projet1-poo2-gl-2021

0.0 0.0 0.0 334 KB

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

Python 100.00%

projet1-poo2-gl-2021's Introduction

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)

projet1-poo2-gl-2021's People

Contributors

fatou-diouf avatar makhtar-sarr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.