Convertisseur de mesures d'angles

Soyez le premier à donner votre avis sur cette source.

Snippet vu 31 927 fois - Téléchargée 28 fois

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

Ajouter un commentaire

Commentaires

Messages postés
44
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
29 février 2008

J'ai modifié certains éléments du code: inversion des couleurs dans le 2eme champs de texte pour le différencier de l'autre, tout se fait automatique lorsqu'on entre un chiffre ou qu'on change un unité, et une redimension pour que ce soit compact en application (.hta)
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
35
mais j'ai montré un principe, on peut de la même façon produire un code plus court et légèrement plus compréhensible en utilisant ma méthode...
Messages postés
44
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
29 février 2008

De ta facon, on ne peut convertir que les degrés en radians, et les radians en degré. Mon code est fait pour s'adapté au nombre d'unités de mesure et pouvoir convertir chacune de ces unités en une autre... ou la même, haha.

Je ne veux surtout pas harceler les utilisateurs avec des alertes, dont le contenu ne peut d'ailleur pas être copié-collé. Peut-être qu'écrire automatiquement l'équivalent dans l'autre champs de texte à l'entrée d'un chiffre ou au changement d'une unité de mesure serait efficace... Je vais voir ce que je peux améliorer, merci tout de même :)
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
35

Messages postés
44
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
29 février 2008

Le mot "main" n'est pas réservé en javascript, alors ce n'est que pour indiqué que c'est la fonction principale. Sinon, quelle est ton idée plus précisement?
Afficher les 6 commentaires

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.