begin process at 2012 05 24 23:24:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Python

 > 

Divers

 > 

Aide et documentation

 > 

demande d'aide


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

demande d'aide

mercredi 25 novembre 2009 à 22:58:26 | demande d'aide

souchi6

Bonjour, je vous remercie d'ava,ce pour votre aide.
Mon problème est le suivant : je suis étudiant et je suis sensé programmer en python la chute d'une balle seulement ce que j'ai fait jusqu'à present ne marche pas vraiment comme je le voudrais.
Pourriez vous me dire ce qu'il ne va pas?(j'ai mis en rouge les points précis ou je pense qu'il y a un probleme). Désolé pour la présentation...


Vecteurs :

class Vecteur :
def __init__(self, _x=0.0, _y=0.0):
self.x = _x
self.y = _y

def mulScalaire(self, _fScalaire):
self.x *= _fScalaire
self.y *= _fScalaire

def addVecteur(self, _vVecteur):
self.x += _vVecteur.x
self.y += _vVecteur.y

Balle :

from Vecteur import *

class Balle:
def __init__(self, _x=0.0, _y=0.0,\
_rayon=10.0, _masse=10.0,\
_xVitesse=0.0, _yVitesse=0.0):
self.mPosition=Vecteur(_x, _y)
self.mVitesse=Vecteur(_xVitesse, _yVitesse)
self.mRayon=_rayon
self.mMasse=_masse

projet:

from Tkinter import *
from Balle import *


def marche():
calculer()
dessiner()
global marche
marche=1

def arret():
global marche
marche=0

def calculer():
global ballesPassees
ballesPassees=[ Balle(_x=derniereBalle.mPosition.x,\
_y=derniereBalle.mPosition.y,\
_rayon=derniereBalle.mRayon,\
_masse=derniereBalle.mMasse,\
_xVitesse=derniereBalle.mVitesse.x,\
_yVitesse=derniereBalle.mVitesse.y)]

global fGravite, iIntervalleTempsMS, fIntervalleTemps
fGravite=-9.8
iIntervalleTempsMS=100
fIntervalleTemps=iIntervalleTempsMS * 0.001

global iIndexTemps
iIndexTemps=0

while derniereBalle.mPosition.x < fResolutionHorizontale \
and derniereBalle.mPosition.x > 0.0 \
and derniereBalle.mPosition.y > 0.0 \
and iIndexTemps < 10000:

derniereBalle.mVitesse.y += fGravite * fIntervalleTemps

tempVitesseAAppliquer = Vecteur(derniereBalle.mVitesse.x, derniereBalle.mVitesse.y)
tempVitesseAAppliquer.mulScalaire(fIntervalleTemps)
derniereBalle.mPosition.addVecteur(tempVitesseAAppliquer)

ajoutduneBalle = Balle(_x=derniereBalle.mPosition.x,\
_y=derniereBalle.mPosition.y,\
_rayon=derniereBalle.mRayon,\
_masse=derniereBalle.mMasse,\
_xVitesse=derniereBalle.mVitesse.x,\
_yVitesse=derniereBalle.mVitesse.y)
ballesPassees.append(ajoutduneBalle)


fenetre.coords(cercleDessinee, ballesPassees[iIndexTemps].mPosition.x - ballesPassees[iIndexTemps].mRayon,\
fResolutionVerticale - (ballesPassees[iIndexTemps].mPosition.y) - ballesPassees[iIndexTemps].mRayon,\
ballesPassees[iIndexTemps].mPosition.x + ballesPassees[iIndexTemps].mRayon,\
fResolutionVerticale - (ballesPassees[iIndexTemps].mPosition.y) + ballesPassees[iIndexTemps].mRayon)

iIndexTemps += 1


def dessiner():
dessinerUneTrame(1)


#L AFFICHAGE DE LA BALLE NE SE MET A JOUR QU A LA FIN et pas entre chaque appel d'after, POURQUOI ?
def dessinerUneTrame(iIndexTempsAffichage):

global iIntervalleTempsMS, cercleDessinee, ballesPassees, marche
fenetre.coords(cercleDessinee, ballesPassees[iIndexTempsAffichage].mPosition.x - ballesPassees[iIndexTempsAffichage].mRayon,\
fResolutionVerticale - (ballesPassees[iIndexTempsAffichage].mPosition.y) - ballesPassees[iIndexTempsAffichage].mRayon,\
ballesPassees[iIndexTempsAffichage].mPosition.x + ballesPassees[iIndexTempsAffichage].mRayon,\
fResolutionVerticale - (ballesPassees[iIndexTempsAffichage].mPosition.y) + ballesPassees[iIndexTempsAffichage].mRayon)
print(ballesPassees[iIndexTempsAffichage].mPosition.x)
print(fResolutionVerticale - (ballesPassees[iIndexTempsAffichage].mPosition.y) + ballesPassees[iIndexTempsAffichage].mRayon) #l'impression des coordonnes donne bien les bonnes valeurs
if ( iIndexTempsAffichage < iIndexTemps and marche > 0): #si on change iIndexTemps pour par exemple arreter l'affichage de la simu a la moitie, la balle est bien affichee au bon endroit
fenetre.after(iIntervalleTempsMS, dessinerUneTrame(iIndexTempsAffichage+1))



global fResolutionVerticale, fResolutionHorizontale
fResolutionVerticale=480.0
fResolutionHorizontale=640.0

interface=Tk()
global fenetre
fenetre=Canvas(interface,width=fResolutionHorizontale,height=fResolutionVerticale,bg='ivory')
fenetre.pack(side=TOP,padx=5,pady=5)

global derniereBalle
derniereBalle=Balle(_x=50.0, _y=430.0, _rayon=10.0)
global cercleDessinee
cercleDessinee = fenetre.create_oval(derniereBalle.mPosition.x-derniereBalle.mRayon,fResolutionVerticale - (derniereBalle.mPosition.y)-derniereBalle.mRayon,\
derniereBalle.mPosition.x+derniereBalle.mRayon,fResolutionVerticale - (derniereBalle.mPosition.y)+derniereBalle.mRayon,outline='black')

bouton1=Button(interface,text='marche',command=marche)
bouton1.pack(side=LEFT,padx=5,pady=5)
bouton2=Button(interface,text='arret',command=arret)
bouton2.pack(side=LEFT,padx=20,pady=5)
interface.mainloop



Cette discussion est classée dans : self, marche, global, mposition, derniereballe


Répondre à ce message

Sujets en rapport avec ce message

wxWindow::RegisterHotKey [ par DoudouBidou ] Bonjour à tous(au passage Merci pour ce site, depuis le temps que je l'attends...)J'utilise wxPython pour réaliser mon interface graphique mais je n'a heklp serverSocket [ par Harvester_ ] Voila j'ai utliser un script du siteC'est un server socket qui marchait tres bien au debut(source)#!C:\Python23\python.exeimport SocketServerimport sy Socket : charger ip depuis fichier [ par Shinji ] Bonjour @ ttes et @ ts, voici mon pb:  j'essaye de faire une petite app client/serveur et j'aimerais pouvoir enregister l'ip/port du serveur dans un IDLE : une mauvaise plaisanterie ? [ par steede ] Bonjour, je débute la programmation (enfin je m'y remets...et je suis autodidacte) et j'ai d'énormes problèmes  avec Python à savoir :   - toutes les Comment lancer son application !!!!!!!!!! [ par steede ] Voila, j'ai écrit (pompé) une malheureuse app (extraite d'un exemple "simple" de wx) et j'aimerais la faire fonctionner !!!!ci dessous la ligne de la Il me manque une librairie [ par cipher16 ] Bonjour ... je viens de commencer à coder en python ... et il semblerai qu'il me manque une librairie ayant un rapport avec internet ... J'ai cherché xmlsocket flash et server python [ par WaReD ] salut bon j ai créé un server vb tcp et un client flash xmlsocket tout marche parfaitement en local et sur le net, mais par contre j ai refait le serv Import Error : no module named log [ par danyboy007 ] Bonjour à tous,J'ai un projet à réaliser, je dois recompiler un player "HELIX" sous windows et donc quelques commandes à passer dans le DOS. J'ai une Class has no attribute !?!? [ par RV2931 ] BonjourJ'ai récupéré un petit programme "Hello world" d'un tuto wxPython de développez.com que voici :# !/usr/bin/python#  -*- coding: iso885915 -*-im héritage de wxObject et polymorphisme ?? [ par RV2931 ] Bonjour,Je programme en wxPython et j'aurai voulu savoir comment dériver un objet wx pour faire un bouton personalisé par exemple, avec des informatio


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,820 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales