Tous | Tutoriels du Mercredi | Basic Casio | C/C++/ASM | LuaFX | Graphisme | Transferts | Logiciels | Diverses astuces

Calculatrice
Toutes
Graphs 35 à 100
Graph 25
Graphs 75/85/95 (SD)
Graph 100(+)
Classpad 300/330 (+)
Fx-CG 10/20
Fx-CP 400
Graph 90+E

Retour à la liste des tutoriels
Tutoriel Casio : Les bases d'un programme de tir type Worms
Tutoriel rédigé le : 2006-11-19 12:38  par Neuronix  Catégorie : Basic Casio  Calculatrice : Toutes

Discutez de ce tutoriel sur le forum >> Voir le sujet dédié (66 commentaires)

Les bases d'un programme de tir type Worms
C'est un classic, incontournable, meme simple c'est toujours drole, on veut tous en faire un dans sa vie de programmeur

Mais toi tu sais pas faire ! Heureusement que planete-casio est là !

Je vais donner une explication physique (on étudie le mouvement dit parabolique en Term mais c'est pas trop dur à comprendre ) puis je ferai un tuto qui applique quelques points pour un programme (on peut simplifier le probleme).

Donc ne flippez pas devant les calculs!

Etude sans forces de frottements (vent, air) :

Systeme : la balle, de masse m
Referentiel : terrestre supposé galiléen
Forces :
- Le poids : P = m.g avec g dirigé vers le sol
Et oui c'est tout !

Le tir est dans un plan de l'espace donc on peut ramener toute l'étude à un plan (O,x,y)

Le vecteur acceleration a a donc pour coordonnées :
a ( 0 , -g )
Par intégration (voir en bas) on trouve le vecteur vitesse v :
v (0 + cte1 , -g * t + cte2)
les constantes sont en fait les projections du vecteur vitesse initiale sur les axes (x,y)
On a donc cte1 = Vo * cos (µ) et cte2 = Vo * sin (µ)
v ( Vo * cos (µ) , -g * t + Vo * sin (µ) )
On intégre à nouveau pour obtenir les coordonnées r de la balle en fonction du temps :
r ( Vo * cos (µ) * t + cte1 , -(1/2) * g * t^2 + Vo * sin (µ) * t + cte2 )
Ici les constantes sont en fait les coordonnées initiales de la balles (là d'ou on tire en fait), on prenra l'origine pour la suite donc cte1 = 0 = cte2

On a donc un système en fonction de t, le temps :
x = Vo * cos (µ) * t
y = -(1/2) * g * t^2 + Vo * sin (µ) * t

En posant t = x / ( Vo * cos (µ) )
Et en remplacant dans y= ... on a y en fonction de x donc on élimine le temps

y= -(1/2) * g * ( x / ( Vo * cos (µ) ) )^2 + Vo * sin (µ) * ( x / ( Vo * cos (µ) ) )

y = - ( g * x^2 ) / ( 2 * Vo^2 * cos (µ)^2 ) + x * tan (µ)

Bon ceci est l'approche physique telle que vous la verrez en Term

Pour la programmation d'un jeu de tir il nous suffit de voir comment se deplace la balle.

- Elle part de Xo,Yo à Vo avec un angle µ.
- au cours du mouvement la gravité agit sur la balle

Donc en fait il suffit de projeter le vecteur vitesse initial sur x,y pour obtenir les coordonnées de la balle à la date t1, t2 etc

depX = Vo * cos (µ)
depY = Vo * sin (µ)

donc considérons une boucle de tir :

?->A
?->F
Fcos A->U
Fsin A->V
0->C~D
Do
C+U->C
D+V->D
Lpwhile...


On va avoir un tir "droit" à l'infini.
En ajoutant la gravité :

?->A
?->F
?->G
Fcos A->U
Fsin A->V
0->C~D
Do
C+U->C
D+V->D
V-G->V
Lpwhile...


Et voila une belle parabole
Note : attention, utilisez une valeur tres faible pour la gravité du genre 0.3 au début

Si on ajoute le vent :

?->A
?->F
?->G
?->W
Fcos A->U
Fsin A->V
0->C~D
Do
C+U->C
D+V->D
V-G->V
U+W->U
Lpwhile...


Faites des essais c'est marrant de voir la balle revenir avec le vent

Intégration :
Le contraire de la dérivation, elle sert pour les calculs d'intégrales (calcul de l'aire délimité par Y=0 et une courbe sur un intervalle par exemple)
Dans la calculatrice, le signe intégrale est un grand S().

S(1) = x + cte (rappelez vous que diff(cte) = 0 )
S(cte) = cte * x + cte2
S(x) = (x^2)/2 (en effet diff((x^2)/2) = 2 * (1/2) * x' * x = x )


Discutez de ce tutoriel sur le forum >> Voir le sujet dédié (66 commentaires)

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 30 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd