IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Aide sur dessiner une étoile de david [Python 2.X]


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut Aide sur dessiner une étoile de david
    Bonjour,

    Autodidacte j'essai d'apprendre le Python.
    J'ai appris a dessiner des formes et je souhaite dessiner une étoile de David.
    Bloqué, j'ai trouvé un code que j'essaie de réécrire à ma sauce mais j'ai un calcul que je ne comprend pas et je souhaiterai que l'on me l'explique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    from turtle import *
     
     
    def forme(n, a, taille, couleur, angle):
        "forme de base, avec n = nombre de côtés, a = angle des sommets"
        down()
        right(angle)
        color(couleur)
        c =0
        while c < n:
            forward(taille)
            right(a)
            c = c +1
        up()
     
     
    def etoile6(taille, couleur, angle):
        # dessiner un premier triangle équilatéral :
        forme(3, 120, taille, couleur, angle)
        left(30)
        forward(taille/1.732)       # 1.732 = 2 * cos(30°)
        right(30)
        forme(3,120, taille, couleur, angle)
     
    etoile6(100,'red',60)
     
    exitonclick()
    En effet je ne sais pas comment ils ont trouver
    2 * cos(30°)
    pour calculer le déplacement d'une pointe d'un triangle à la pointe de l'autre triangle.
    Pouvez vous m'expliquer ce calcul?

    Je vous en remercie par avance.

    Bonne journée

    sebing

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    C'est dans le module math.

    Il faut utiliser des radians:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> from math import cos, radians
    >>> r = radians(30)
    >>> 2 * cos(r)
    1.7320508075688774

  3. #3
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Une question de trigonométrie ...
    Je vais tenter de répondre par une image car sinon
    je vais me perdre dans les explications ;-)
    Nom : david.jpg
Affichages : 7283
Taille : 132,1 Ko

  4. #4
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    En fait on peut procéder différemment
    Ici aussi une façon moins 'propre' pour l'exemple
    Juste pour le fun ... quoi mais ça fonctionne sans cosinus ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    from turtle import *
     
     
    def forme(n, a, taille, couleur, angle):
        "forme de base, avec n = nombre de côtés, a = angle des sommets"
        down()
        left(angle)
        color(couleur)
        c =0
        while c < n:
            forward(taille)
            right(a)
            c = c +1
        up()
     
     
    def etoile6(taille, couleur, angle, rect):
        # dessiner un premier triangle équilatéral :
        forme(3, 120, taille/2, couleur, angle)
        forme(3, 120, taille/2, 'black', 180)
        forward(taille/2)
        forme(3, 120, taille/2, couleur, angle)
        forward(taille/2)
        forme(3, 120, taille/2, 'black', angle)
        forward(taille/2)
        forme(3, 120, taille/2, couleur, angle)
        forward(taille/2)
        forme(3, 120, taille/2, 'black', angle)
     
     
    etoile6(100,'red',60,'black')

  5. #5
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Merci pour les explications

    Bonne soirée

    Sebing

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] dessiner sur une toile androïd
    Par alex5956 dans le forum Développement Mobile
    Réponses: 0
    Dernier message: 16/06/2015, 11h40
  2. aide sur protégé une page web.
    Par truc134 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 27/09/2006, 13h19
  3. aide sur une image
    Par laetus dans le forum IHM
    Réponses: 5
    Dernier message: 04/10/2004, 14h54
  4. Aide sur une requete de sélection
    Par stephdiplo150 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/01/2004, 10h40
  5. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo