Si on veut multiplier 12 par 25, on se ramène à 1,2×2,5.
On déplace le réglet du haut de telle façon que son origine
coïncide avec 1,2 sur celui du bas. Ensuite on amène le curseur sur 2,5 sur le réglet du haut et on lit le résultat
sur le réglet du bas : 3 qui correspond à 300…
Si le produit des 2 nombres dépasse 10, par exemple 3×7, on n'amène pas l'origine du réglet du haut sur 3
mais son extrémité (qui correspond à 10)
Essayez… Les nombres décimaux s'écrivent avec un point.
merci à Pascal Remeur pour m'avoir prété sa Graphoplex en platine iridié à double injection électronique…
Éléments de code
se ramener à un réel entre 1 et 10
var un=0;
//on récupère le résultat de la première saisie
un=document.regle.premier.value;
//transformation en nombre
un=parseFloat(un);
//ecriture scientifique 2décimales
un=un.toExponential(2);
//on ne garde que 4 caractères// élimination de la puissance de 10
un=un.substr(0,4)
//transformation en nombre
un=parseFloat(un);
déplacer la règle du haut
(dans le cas où le produit des deux réels ramenés entre 1 et 10 est inférieur à 10)
Le probléme est de déplacer le réglet du haut, qui est une image de 769 pixels à qui l'on a donné le nom hautregle
en faisant passer sa marge gauche de
0 pixel à un nombre de pixel adéquat. Ce nombre de pixel est 769*ln(un)/ln(10) où un est le nombre
saisi en premier et ramené entre 1 et 10 .
L'idée est de modifier cette marge avec la méthode style .
Attention : Math.log() représente le logarithme népérien.
//calcul de la marge à ajouter
var distance =0;
distance=769/Math.LN10*Math.log(un);
//L'image représentant le réglet du haut a été nommée hautregle
var haut =document.hautregle;
//on change la marge gauche de l'image hautregle
haut.style.marginLeft = distance +"px";
Pour plus de précisions
En regardant le code source de cette page, vous aurez le script complet. Vous verrez en particulier que j'ai dû tenir compte du
comportement différent des navigateurs.
Si vous êtes sous Safari, vous pouvez m'envoyer un mail
pour me dire comment il se comporte…