Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONVERTISSEUR DE MESURES D'ANGLES


Information sur la source

Catégorie :Divers Classé sous : mesure, angle, degré, radian, convertisseur Niveau : Débutant Date de création : 11/03/2006 Date de mise à jour : 24/03/2006 02:54:44 Vu : 23 227

Note :
Aucune note

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

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

  • <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>
<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.. ;)
 

Historique

11 mars 2006 06:55:47 :
J'avais mis le niveau à 3.. alors que ce code n'a rien d'expert:P
12 mars 2006 23:16:22 :
Suppression du bouton, tout se fait maintenant automatiquement lorsque l'on entre un chiffre ou que l'on modifie un unité de mesure.
12 mars 2006 23:39:08 :
Règlé un petit détail gênant avec le zéro, et enlevé le "try, catch" car il n'était pas nécessaire
13 mars 2006 22:45:21 :
Il y avait une erreur qui se produisait lorsqu'on vidais le champs, mais plus maintenant.
24 mars 2006 02:54:45 :
Correction de l'erreur qui fait en sorte que le premier chiffre s'efface peu importe où on met le zéro

Commentaires et avis

signaler à un administrateur
Commentaire de coucou747 le 12/03/2006 12:28:10

function main() {
faut pas utiliser ces noms là, ils sont réservés dans d'autres langages, et ça peut porter à confusion...

Bon, sinon, personellement, j'aurais fait ça en une seule case de texte, avec un select, et en 4 * moins de lignes en mettant des onkeydown

signaler à un administrateur
Commentaire de FasteX_ le 12/03/2006 20:58:13

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?

signaler à un administrateur
Commentaire de coucou747 le 12/03/2006 21:42:38

<input type="text" onkeyup="alert(this.value*180/Math.PI);" title="from radians to degrees" />
<input type="text" onkeyup="alert(this.value*Math.PI/180);" title="from degrees to radians" />

signaler à un administrateur
Commentaire de FasteX_ le 12/03/2006 23:09:11

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 :)

signaler à un administrateur
Commentaire de coucou747 le 12/03/2006 23:35:54

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...

signaler à un administrateur
Commentaire de FasteX_ le 12/03/2006 23:43:38

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)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

affichage "en temps et en heure" [ par bultez ] [size=1][b][brown]Bonjour à tous[black]les "input text" ne s'affichent qu'en fin de la routinewindows.status au fur et à mesure de l'avancementest-ce Mesure de taille utile d'une fenêtre [ par silef ] Salut,J'ai un problème en javascript, je n'arrive pas à mesurer la taille utile de ma fenêtre. C'est à dire la fenetre qui est affiché à l'écran + le Cacher des fonctions javascripts [ par ypothier ] Bonjour, j'essaie de camoufler des fonctions javascripts en php et / ou asp. Je veux que l'utilisateur soit en mesure de voir le code source, mais que Convertisseur HTML en BBCode [ par Phil_Free ] Bonjour à tous,Je cherche un script qui permette de convertir un texte HTML en BBCode.Mon but:- J'ai réalisé un long article en HTML et je dois mainte événement permanent [ par arnaultp ] Bonjour à tous!J'ai repris un script ici même qui représente une sorte de manège avec des icones. Ce script m'intéressant bien, j'ai voulu l'améliorer


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,215 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.