relation entre kilométrage et vitesse instanée - C - Programmation
Marsh Posté le 05-04-2006 à 16:03:13
Citation : je ne vois pas comment faire du bloque |
avec une usine à blocs !
Sinon ton message n'est pas du tout clair. SI t'as la vitesse, tu peux compter le temps qui s'écoule et donc calculer une distance parcourue ?
Marsh Posté le 05-04-2006 à 16:04:19
MDR,
je sais pas pourquoi j'ai écris ca ! c'était ce que je pensais...
ca m'arrive des fois, enfin, je corrige
Marsh Posté le 05-04-2006 à 16:04:59
ben en fait j'ia la vitesse instanée, le temps qui s'écoule je peux le récupérer avec clock() ... mais je sais pas comment allier tout ca
vu que le programme fonctionne en continu, je ne vois pas trop comment gérer ca, ca monte toujours, la vitesse peut toujours varier...
je pense que tu as l'idée d'utiliser la vitesse moyenne et le temps total... mais ca ne marche pas ici, ou alors je vois pas comment faire vu que le kilométrage affiché augmenter plus ou moins vite selon la vitesse instanée
Marsh Posté le 05-04-2006 à 16:07:55
distance = vitesse dt
le plus simple est de réveiller ton programme régulièrement (avec une fréquence assez élevée) et de rajouter au kilométrage déjà existant le produit :
[vitesse_instantanée] x [temps_écoulé_depuis_la_dernière_fois]
Marsh Posté le 05-04-2006 à 16:09:48
tu sais pas comment faire quoi ? c'est le réveil de ton programme à intervalles de temps réguliers qui te pose problème ?
Marsh Posté le 05-04-2006 à 16:11:38
oui c'est ca. c'est la mise a jour constante du kilométrage
Marsh Posté le 05-04-2006 à 16:14:16
comment est structuré ton simulateur ?
sur quel OS tu tournes ?
quel type de fréquence de rafraichissement veux-tu obtenir ? (attention, plus les accélérations sont élevées, plus tu vas être obligé de rafraîchir souvent)
Marsh Posté le 05-04-2006 à 16:18:13
oui je vais m'expliquer :
On fait sous Visual C... et WinXP
j'ai donc pleins de fonctions : vitesse instanée, kilométrage total, etc...
La fonction main sera donc une seule boucle qui récupère l'appui d'une touche (tout se controle a l'aide de qq touches du clavier)
Donc la fréquence de raffraichissement je ne sais pas trop : on règle la vitesse de 5 en 5 km/h...
Marsh Posté le 05-04-2006 à 16:28:14
Citation : on règle la vitesse de 5 en 5 km/h... |
et tu considères que dès que l'utilisateur appuie sur la touche en question la vitesse augmente instantanément de 5km/h et reste constante jusqu'à l'action suivante de l'utilisateur ?
C'est une mauvaise approximation, mais ça simplifie grandement ton problème : dans ce cas, il suffit que tu incrémentes ton compteur kilométrique sur la base de l'ancienne vitesse juste avant de la modifier suite à une action de l'utilisateur. Tu n'as plus besoin de réveiller ton processus à intervalles réguliers.
Marsh Posté le 05-04-2006 à 16:33:09
franceso a écrit :
et tu considères que dès que l'utilisateur appuie sur la touche en question la vitesse augmente instantanément de 5km/h et reste constante jusqu'à l'action suivante de l'utilisateur ? |
c'est tout a faire ca
mais je ne vois toujours pas comment faire, on peut travailler avec la variation ou non de la vitesse peut etre ?
il faut trouver le temps qu'il reste à telle ou telle vitesse
Marsh Posté le 05-04-2006 à 16:42:52
je ne vois pas où est le problème : dès que l'utilisateur appuie sur une touche pour effectuer une action (quelle qu'elle soit), on met à jour le kilométrage et on effectue l'action demandée.
en pseudocode, ca donne un truc du genre :
// initialisation |
tu saisis le principe ?
Marsh Posté le 05-04-2006 à 16:44:34
Citation : il faut trouver le temps qu'il reste à telle ou telle vitesse |
vu que la vitesse ne change que quand l'utilisateur appuie sur la touche 'accélérer' ou 'freiner', tu sais bien depuis combien de temps il est à la vitesse actuelle...
Marsh Posté le 05-04-2006 à 16:46:17
ahhh mais oui, je n'avais pas pensé à faire ca comme ca...
bon je vais essayer de mettre ca en plus,
je vais bientot en cours, donc je sais pas si je peux le faire de suite, mais je poste ca des que j'ai fini ;-)
merci encore
Marsh Posté le 05-04-2006 à 16:00:30
Voila je suis en train de faire mon projet qui consiste à simuler un ordinateur de bord et il faut donc que je calculer le kilométrage parcouru.
J'ai donc la vitesse instanée qui est choisie par l'utilisateur...
il faut que j'affiche donc le kilométrage qui augmente en fonction de la vitesse...
je ne vois pas comment faire du tout
Message édité par dRfELL le 05-04-2006 à 16:05:59