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

Python Discussion :

[Inutile] Vos solutions pour l'exo 8.32 du tuto de Swinnen


Sujet :

Python

  1. #1
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut [Inutile] Vos solutions pour l'exo 8.32 du tuto de Swinnen
    Bonjour à tous,

    Ce sujet fait suite à celui ci.
    Le concept est celui ci : A partir d'un sujet donné, et pris hors contexte, donnez une solution qui permette d'arriver au résultat. Pas de limite.
    Le sujet est posté le dimanche et cela jusqu'au Samedi.

    Voici le premier sujet :
    8.32. Écrivez un programme qui simule le mouvement de 2 planètes tournant autour du soleil sur des orbites circulaires différentes (ou deux électrons tournant autour d'un noyau d'atome...).
    A vous de nous surprendre.

    Bon code.
    Merci d'utiliser le forum pour les questions techniques.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 052
    Points : 1 383
    Points
    1 383
    Par défaut
    on a le droit de poster une variante ?
    je mettrai les #comments plus tard.
    pour faire court, dans 'exemple donné:
    'a' tourne autour du point (150,150)
    'b' tourne autour de 'a'
    'c' tourne autour de 'b'

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    from math import sin,cos,radians
    from pygame import time
     
    class satelite:
        def __init__(self,origine,angle,distancex,distancey,vitesse):
            self.origine = origine
            self.angle = angle
            self.distancex = distancex
            self.distancey = distancey
            self.r,self.laps = vitesse
            self.t = time.Clock()
            self.tt = 0
     
        @property
        def position(self):
            try:
                return self.origine.position[0]+cos(radians(self.angle))*self.distancex,self.origine.position[1]+sin(radians(self.angle))*self.distancey
            except:
                return self.origine[0]+cos(radians(self.angle))*self.distancex, self.origine[1]+sin(radians(self.angle))*self.distancey
     
        def update(self):
            self.tt += self.t.tick()
            if self.tt >= self.laps:
                self.angle += self.r
                self.tt -= self.laps
    if __name__ == "__main__":
        from pygame import *
        screen = display.set_mode((300,300))
        #bg = screen.copy()
        #bg.set_alpha(1)
        a = satelite((150,150),0,50,50,(1,40))
        b = satelite(a,0,20,50,(1,10))
        c = satelite(b,0,30,50,(1,5))
        while not event.peek(QUIT) and a.angle != 360:
            event.clear()
            #screen.blit(bg,(0,0))
            a.update()
            b.update()
            c.update()
            #screen.set_at(a.origine,(255,255,255))
            #screen.set_at(a.position,(255,255,255))
            #screen.set_at(b.position,(255,255,255))
            screen.set_at(c.position,(255,255,255))
            display.flip()
        while event.wait().type != QUIT: pass

Discussions similaires

  1. Réponses: 21
    Dernier message: 30/08/2004, 17h07
  2. meilleur solution pour créer un document imprimable???
    Par martimacfly dans le forum XML/XSL et SOAP
    Réponses: 26
    Dernier message: 08/07/2004, 10h09
  3. [Conception] Meilleures solutions pour gérer le multilangage
    Par scorpiwolf dans le forum Général Java
    Réponses: 3
    Dernier message: 06/07/2004, 16h11
  4. [Kylix] solution pour kylix3 OE BCB sous mdk 9.2
    Par raggadoll dans le forum EDI
    Réponses: 3
    Dernier message: 28/01/2004, 16h26

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