Boucle et mathématiques

Fermé
Bob le bricoleur - 7 mai 2004 à 09:54
 Bob le bricoleur - 7 mai 2004 à 18:02
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

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
7 mai 2004 à 10:07
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 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 755
7 mai 2004 à 10:24
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
7 mai 2004 à 10:40
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 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 755
7 mai 2004 à 10:45
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
7 mai 2004 à 11:07
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 Date d'inscription jeudi 22 avril 2004 Statut Contributeur Dernière intervention 17 décembre 2004 31
7 mai 2004 à 11:22
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 Date d'inscription jeudi 22 avril 2004 Statut Contributeur Dernière intervention 17 décembre 2004
7 mai 2004 à 11:47
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 Date d'inscription jeudi 22 avril 2004 Statut Contributeur Dernière intervention 17 décembre 2004 31 > JSS Messages postés 3745 Date d'inscription jeudi 22 avril 2004 Statut Contributeur Dernière intervention 17 décembre 2004
7 mai 2004 à 13:16
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 Date d'inscription jeudi 22 avril 2004 Statut Contributeur Dernière intervention 17 décembre 2004
7 mai 2004 à 18:02
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 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 755
7 mai 2004 à 11:27
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