Boucle et mathématiques

Bob le bricoleur -  
 Bob le bricoleur -
Bonjour !

Bon, j'ai mis mon message là, en espérant que ce soit la bonne rubrique.

Voilà, ma question est simple :
J'ai une boucle. A chaque tour, le zoom d'un graphisme augmente jusqu'à atteindre une valeur maximale. Quelle est la formule qui me permettra d'obtenir le resultat escompté ?
Voici les variables :
- nbreEtapesZoom : le nombre d'étape du zoom, qui est aussi la valeur maximale de la boucle
- etapeZoom : la valeur incrémentée à chaque passage de la boucle
- facteurZoom : la variable contenant le zoom maximal
- Zoom : la valeur du zoom, qui doit donc aller de 1 au départ de la boucle, à facteurZoom en fin de boucle

Je croyais que c'était simple, mais en fait, en vieillissant, on devient mauvais en math, alors qu'avant, on était bon. C'est TORRIBLE !!! ;-)

Merci par avance aux contributeurs !

4 réponses

Nico
 
Yop,

je n'ai pas très bien saisi le contexte mais :

for (etapeZoom=1; etapeZoom<nbreEtapesZoom;etapeZoom++) {
zoom = etapeZoom;
// traitement
}

++

Nico
0
Bob le bricoleur
 
Merci, mais ce n'est pas aussi simple.
En fait, le zoom est de 1 au départ, et doit être de facteurZoom, à la fin, en nbreEtapesZoom. Seule la variable etapeZoom étant incrémentée.
En fait, j'étais sur le point de trouver (enfin, c'est ce que je croyais), quand on m'a parlé de suites géométriques, avec des logarithmes... Depuis, je suis dépressif...
0
dje-dje Messages postés 10442 Statut Modérateur 758
 
Si zoom doit etre de facteur zoom à la fin, il va falloir l'incrémenter aussi. Non?
Le plus simple, si tu veux qu'on t'aide est de bien tout nous définir: les variables avec leurs valeurs de départ, et l'etat d'arrivée.
Ton prog n'a pas l'air bien compliqué mais j'ai l'impression que tu as du mal à nous l'expliquer.

a+
dje-dje

Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
0
Bob le bricoleur
 
Bon, alors je recommence en essayant d'être plus clair (je dis bien essayant).

J'ai un objet que je veux faire grossir, au final de facteurZoom, mais par étapes.
Au départ, son zoom est de 1, et à la fin, son zoom est de facteurZoom (qui peut varier, peu importe)
Je veux également définit le nombre d'étapes de ce grossissement. Ce nombre d'étape est aussi le nombre de fois que la boucle va se répéter. Je l'appelle nbreEtapesZoom.
La dernière varialbe dont je dispose, seule à ne pas être fixée au départ, est etapeZoom. Elle est incrémentée de 1 à chaque passage de la boucle.

En d'autres termes, en nbreEtapesZoom étapes, mon zoom varie de 1 à facteurZoom.

Merci !
0
dje-dje Messages postés 10442 Statut Modérateur 758
 
Ok, ca se dessine.
"mon zoom varie de 1 à facteurZoom." -> De un en un?

a+
dje-dje

Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
0
Bob le bricoleur
 
Et non pas de 1 en 1. La boucle augmente de 1 en 1. Mais le zoom augmente de (facteurZoom/nbreEtapesZoom).
0
JSS Messages postés 3745 Statut Contributeur 32
 
Bonjour ou Bonsoir,

Je te propose une solution je sais pas si c'est ca que tu cherches mais bon (d'apres ce que j'ai compris)

pour etapezoom=1; etapezoom<=nbretapezomm;etapezoom++ faire
zoom = etapezoom*facteurzoom/nbretapezoom;

JSS
0
Bob le bricoleur > JSS Messages postés 3745 Statut Contributeur
 
Merci de ta réponse JSS, mais elle n'est pas correcte...
Avec, ta solution, lorsque etapeZoom est de 1, zoom n'est pas égal à 1...
0
JSS Messages postés 3745 Statut Contributeur 32 > JSS Messages postés 3745 Statut Contributeur
 
Bonjour ou Bonsoir,

En fait, je pense avoir trouvé la solution.
Je pense que tu es amené à définir une équation de droite en connaissant deux points :

(0,1)
(nbrEtape,facteurZoom)

D'où l'equation suivante :

Zoom = (facteurZoom-1)/(nbrEtape –0 ) *etapeZoom + 1.

Voila.

Ca repond a ta question ?

JSS
0
Bob le bricoleur > JSS Messages postés 3745 Statut Contributeur
 
B ou B JSS !!!

Je ne peux pas te confirmer par l'application, mais j'en suis arrivé à la même conclusion que toi. Merci beaucoup en tout cas, tu es un as !
En la solution des suites donne un résultat bien plus complexe et long à gérer, du type q=(ln(Un)-ln(U0))/n. Enfin...

Passe une bonne soirée, oiu journée !

Et merci aux autres contributeurs biensûr !!!
0
dje-dje Messages postés 10442 Statut Modérateur 758
 
Je te le fais en version algo/C:

etape_zoom=0;
facteur_zoom= Z; //Je suppose que tu auras une variable pour ca?
nb_etapes_zoom= N; // La aussi, tu dois le savoir avant l'arrivée dans la boucle?

for(zoom=1; zoom=Z;zoom+=(Z/N) )
{
etape_zoom +=1;
}

C'est ok?

a+
dje-dje

Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
0