Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Contrôler le Tps d'exécution d'une fonction

4 réponses
Avatar
TouTi
Bonsoir

Je planche sur les outils graphiques (circle, pset...) pour réaliser une
sorte d'horloge à une aiguille, à vitesse variable et à graduation variable
(1 jusque 50).

La durée de rotation de l'aiguille est très importante et doit restée
constante quelque soit la situation.

Actuellement, dans la fonction, j'utilise une boucle For avec deux limites
d'angles (0 à 360° ou 30 à 90) avec un step dépendant du nombre de
graduation que je lui impose. Pour faire varier la vitesse j'utilise un
timer avec doevents qui fait une pause de l'exécution juste avant le next.

Tout fonctionne bien, mais le gros problème c'est le temps d'exécution de la
fonction qui varie selon la charge du processeur (lancement d'un
antivirus,....)

Peut-on contrôler le temps d'exécution du code pour qu'il reste fixe??? ou
faudrait-il que je base mon code non plus sur une boucle mais directement
sur un timer????

Merci

Guy

4 réponses

Avatar
X
Bonjour,

J'ai fait pas mal de dessin à même la feuille (au pixel)... alors:

Le timer aurait tendance à être plus régulier, tant est qu'on ne le
retarde pas au point qu'il ne puisse s'exécuter au moment prévu... En effet,
DoEvents devrait le libérer...

Pour ton horloge à aiguille, tente le dessin directement sur la feuille,
pas au pixel, mais avec des fonctions comme "line"... Et avec sinus et
cosinus, tu peux placer tout ça, peut être que le processeur le calculera
plus vite que s'il s'agissait d'objets...

demande si tu veux des exemples :o)

----------------

"TouTi" <gelapplicationn[Nospam]@tiscali.fr> a écrit dans le message de
news: dro85l$jge$
Bonsoir

Je planche sur les outils graphiques (circle, pset...) pour réaliser une
sorte d'horloge à une aiguille, à vitesse variable et à graduation
variable (1 jusque 50).

La durée de rotation de l'aiguille est très importante et doit restée
constante quelque soit la situation.

Actuellement, dans la fonction, j'utilise une boucle For avec deux limites
d'angles (0 à 360° ou 30 à 90) avec un step dépendant du nombre de
graduation que je lui impose. Pour faire varier la vitesse j'utilise un
timer avec doevents qui fait une pause de l'exécution juste avant le next.

Tout fonctionne bien, mais le gros problème c'est le temps d'exécution de
la fonction qui varie selon la charge du processeur (lancement d'un
antivirus,....)

Peut-on contrôler le temps d'exécution du code pour qu'il reste fixe??? ou
faudrait-il que je base mon code non plus sur une boucle mais directement
sur un timer????

Merci

Guy



Avatar
TouTi
Bonjour X

Pour ton horloge à aiguille, tente le dessin directement sur la feuille,
pas au pixel, mais avec des fonctions comme "line"... Et avec sinus et
cosinus, tu peux placer tout ça, peut être que le processeur le calculera
plus vite que s'il s'agissait d'objets...



Oui j'ai tout remodifié et le temps d'exécution est beaucoup plus court..

demande si tu veux des exemples :o)


Ah bah là je veux bien car j'y perds mon latin...
J'aimerai que l'aiguille fasse un tour complet (360°) en un temps imposé (8
ou 9 ou 10 ou ,..... 60 secondes) en utilisant un timer

merci

--
Guy
Avatar
TouTi
>> demande si tu veux des exemples :o)


Ah bah là je veux bien car j'y perds mon latin...
J'aimerai que l'aiguille fasse un tour complet (360°) en un temps imposé
(8 ou 9 ou 10 ou ,..... 60 secondes) en utilisant un timer



X ne t'embète pas... j'ai trouvé...

--
Guy
Avatar
TouTi
> X ne t'embète pas... j'ai trouvé...



Bah tout compte fait, ton aide ne serait pas de trop car je n'arrive pas
tout à fait au résultat escompté.

Ce n'est pas un problème de traçage mais celui de la gestion du temps et des
angles. Je résume mon projet :

* J'ai un cercle (horloge) dont le nombre de graduation peut aller de 1 à 50
(défini au démarrage ou lorsque je veux tout changer)
* Chaque graduation est numérotée
* J'ai une aiguille qui doit tourner à une vitesse définie (8, 9, ... 60 s
par tour) dans un sens ou dans l'autre
* J'ai cinq boutons :
- deux doivent permettre de faire un tour complet à l'aiguille dans un sens
ou dans l'autre
- deux doivent permettre de décaler l'aiguille d'une seule graduation dans
un sens ou dans l'autre
- le dernier doit stopper le mouvement de l'aiguille mais lorsqu'elle se
trouvera juste devant une graduation

Si tu as une petite idée... tu peux aussi me contacter en enlevant [Nospam]
de mon adresse email. J'ai la base du projet que je peux envoyer...

Merci

--
Guy