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

Scheme Discussion :

Rebond d'une balle contre les parois à l'intérieur d'une spère


Sujet :

Scheme

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    mars 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2008
    Messages : 11
    Points : 4
    Points
    4
    Par défaut Rebond d'une balle contre les parois à l'intérieur d'une spère
    une boule est contre une paroie. elle vient de percuter la paroie.
    cette fonction va lui permettre de rebondir
    dite moi si je suis sure la bonne voie svp





    (define (rebond B i monde) ;comportement d'une balle après un choc avec la paroi

    (let* (
    (x (BALLE-x B))
    (y (BALLE-y B))
    (vx (BALLE-vx B))
    (vy (BALLE-vy B))
    (alpha (atan (/ (abs y) (abs x))))
    (betta (atan (/ (abs vy) (abs vx)))))

    ;(set! alpha (/ (* alpha pi) 180))
    ;(set! betta (/ (* betta pi) 180))

    (cond ((and (< x 0) (> y 0)) (set! alpha (+ pi alpha)))
    ((and (< x 0) (< y 0)) (set! alpha (- pi alpha)))
    ((and (> x 0) (< y 0)) (set! alpha (- alpha))))

    (cond ((and (< vx 0) (> vy 0)) (set! betta (+ pi betta)))
    ((and (< vx 0) (< vy 0)) (set! betta (- pi betta)))
    ((and (> vx 0) (< vy 0)) (set! betta (- betta))))

    (let ((angle (- betta alpha))
    ;(angle (- alpha betta ))
    (a (+ vx x))
    (b (+ vy y)))


    (if (< angle 0) (begin (set! a (+ x (- (* (cos (- (* 2 angle) pi)) a)
    (* (sin (- (* 2 angle) pi)) b))))
    (set! b (+ y (+ (* (sin (- (* 2 angle) pi)) (+ x vx))
    (* (cos (- (* 2 angle) pi)) b)))))
    (begin (set! a (+ x (- (* (cos (+ pi (* 2 angle))) a)
    (* (sin (+ pi (* 2 angle))) b))))
    (set! b (+ y (+ (* (sin (+ pi (* 2 angle))) (+ x vx))
    (* (cos (+ pi (* 2 angle))) b))))))
    (set! vx (- a x))
    (set! vy (- b y))


    (let ((boule (make-BALLE a b vx vy (BALLE-c B) #f)))
    (set-BALLE-vy! boule (- vy))
    (rep_scheme boule)
    (vector-set! monde i boule)))))

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : juillet 2005
    Messages : 1 958
    Points : 2 379
    Points
    2 379
    Par défaut

Discussions similaires

  1. USA : Le sénat propose une loi contre les cyberespions
    Par Stéphane le calme dans le forum Actualités
    Réponses: 4
    Dernier message: 10/05/2013, 15h14
  2. Google se lance dans les services DNS : une attaque contre les FAI ?
    Par Gordon Fowler dans le forum Actualités
    Réponses: 43
    Dernier message: 19/05/2010, 10h39
  3. Rebond de la balle sur les bords d'un terrain
    Par sperca dans le forum SDL
    Réponses: 8
    Dernier message: 19/08/2009, 14h49
  4. Protéger une table contre les doublons
    Par MikeV dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 23/08/2007, 22h01
  5. Gérer les guillemeets à l'intérieur d'une chaîne
    Par LAGARDETTE dans le forum ASP
    Réponses: 5
    Dernier message: 27/06/2006, 23h08

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