Convertisseur de mesures d'angles

Contenu du snippet

Voici ce que je pourrais appeler un «convertisseur de mesures d'angles». Par exemple, convertir x° en radians ou en grad, et vice-versa. Son utilisation est simple: indiquer une valeur à convertir ainsi que son unité de mesure, indiquer l'unité de mesure dans laquelle on veut convertir la valeur, reste qu'à cliquer sur "Convertir la valeur" et le tour est joué :)

Source / Exemple :


<html>
<title>:: Convertisseur de mesures d'angles ::</title>

<script language=JavaScript>
<!--
window.resizeTo(400, 100)

var totalList = [360, 2*Math.PI, 400] // La mesure d'un angle complet en degré, en radians et en grad.

function mainFunc() {
   var v1 = GE("value1").value
   if (v1 == "") { // Si le champs est vide, donner la valeur zéro
      v1 = "0"
   }

   if (v1.lastIndexOf("0") == 0 && parseFloat(v1) >= 1) { // Enlever le zéro au début si v1 >= 1
      v1 = v1.substring(1, v1.length)
   }

   GE("value1").value = v1

   var n = parseFloat(v1) // La mesure de l'angle à convertir
   var type1 = GE("type1").selectedIndex // L'unité de l'angle à convertir
   var type2 = GE("type2").selectedIndex // L'unité de l'angle équivalent que l'on cherche

   GE("value2").value = convert(n, totalList[type1], totalList[type2])
}

function convert(n, total1, total2) {
   return (n*total2)/total1
}

function GE(id) { // Pour raccourcir le code, tout simplement :)
   return document.getElementById(id)
}
//-->
</script>

<body bgcolor=#eeeeee><center>

<form>
<input type=text onkeyup=mainFunc() id=value1 size=10>
<select id=type1 onclick=mainFunc()>
   <option value=0>Deg</option>
   <option value=1>Rad</option>
   <option value=2>Grad</option>
</select>

 = 

<input type=text onkeyup=mainFunc() id=value2 size=10 style=background-color:black;color:white; readonly>
<select id=type2 onclick=mainFunc()>
   <option value=0>Deg</option>
   <option value=1>Rad</option>
   <option value=2>Grad</option>
</select>

<br>
</form>

</center></body>
</html>

Conclusion :


Je me suis basé sur un fait: pour que 2 angles soit identiques, le rapport entre la mesure de l'angle et celle d'un angle complet doit être constant. On a donc les égalités suivantes: a°/360° = b rad/2pi rad = c grad/400 grad. À partir de cette égalité, si on connais une seule valeur, il est facile de déduire les autres. Voilà en gros le fonctionnement de mon code.

Petit problème de précision, on ne peut pas exprimer les valeurs en fractions..

PS: J'ai testé mon code seulement sur IE 6, il se peut qu'il y ait des incompatibilités avec d'autres navigateurs. Désolé si cela se produit, la portabilité n'est pas mon fort.. ;)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.