#1 

16-01-2007 10:20:13

diOxy
Membres
Avatar de diOxy
Date d'inscription:
Messages: 153
IP: 81.199.1.236
Courriel

Aller, un petit topo sur les angles !

Comme vous l'avez peut-être constaté les calculs trigos effectués par nos merveilleuses machines sont basés sur les radians. A savoir :

  • 360 Degrés = 400 grades = 2*Pi


En topo on utilise en général les grades pour le gisement parce que c'est plus facile. Quand on se place sur un point et que décide qu'en face, c'est 0 grades, on a pas besoin de calculs complexes pour savoir qu'a gauche, c'est 100, a droite 300 et derrière 200. Vous me direz que 90, 180, 270 c'est pareil. Mais 1 quart a droite devient 50, trois quart droite devient 150, trois quart gauche devient 250 et un quart gauche devient 350. Vous pouvez me donner le résultat en degrés sans calculer un petit peu ? (Oui, je sais : quand on a l'habitude de ces chiffres, c'est facile).

Aller, hop. Les conversions :

Convertir un angle de Radian vers Degré = AngleRadian/180*PI
Convertir un angle de Degré vers Radian = AngleDegré*180/PI

Pour les Grades, vous remplacez juste 180 part 200 :

Convertir un angle de Radian vers Grade = AngleRadian/200*PI
Convertir un angle de Grade vers Radian = AngleGrade*200/PI

Convertir un angle de Degré vers Grade = AngleDegré/0.9
Convertir un angle de Grade versDegré = AngleGrade*0.9


Hors ligne


#2 

17-01-2007 22:55:05

kedu
Modérateurs
Avatar de kedu
Date d'inscription:
Messages: 155
IP: 212.195.117.27
Courriel

sympa car on est tous à un moment donné parti à la recherche de ses infos oubliées avec le temps...


Hors ligne


#3 

18-01-2007 15:56:24

DeusXL
Membres
Avatar de DeusXL
Date d'inscription:
Messages: 174
IP: 82.66.209.23
Courriel

Toujours pratique car il est vrai que même quand on a l'habitude on fait des erreurs (du genre j'inverse le 180/PI) qui causent de grave soucis.
Maintenant moi je trouve ni les degrés ni les grades faciles big_smile Toutes les formules de maths sont tellement plus évidentes en radians.


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


#4 

03-03-2007 00:22:23

ptitfred
Membres
Avatar de ptitfred
Date d'inscription:
Messages: 21
IP: 82.235.16.81
Courriel  Site web

DeusXL a bien raison : les radians sont la seule référence sérieuse en trigonométrie et dans toutes les sciences s'en servant (physique donc). Et j'irai même plus loin : si les formules de maths sont "plus évidentes en radians", c'est tout simplement que c'est la seule graduation valable d'un point de vue théorique. Les degrés et les grades ne sont que des artefacts hérités d'une époque où la trigo servait à construire des maisons, intellectuellement on manipule plus aisément des nombres de l'ordre 10 (le cerveau préfère les entiers).

Ne vous embarassez pas des degrés ou des grades sauf pour renseigner l'utilisateur humain d'un angle. Et à ce moment-là faites la conversion en degrés.

Pour les considérations de précision, il est inutile d'aller chercher les nombreuses décimales, un short fera bien l'affaire. Exprimé en radians, un angle vaudra entre -PI et +PI et on ne cherchera pas souvent une précision supérieure à 10-2 pour les calculs.

Malheureusement, bon nombre d'outils travaillent en degrés, et si je me souviens bien (à vérifier), irrlicht travaille en degré...


désolé pour ce petit up de sujet tongue

fred

Hors ligne


#5 

03-03-2007 08:05:28

DeusXL
Membres
Avatar de DeusXL
Date d'inscription:
Messages: 174
IP: 82.66.209.23
Courriel

Toute la programmation 3D se fait en radian, que ce soit au niveau de la carte graphique ou au niveau software...
D'ailleurs la carte graphique ne travaille qu'avec des nombres à virgule flottante... C'est pour cela qu'elle est bien plus rapide que le CPU pour ce genre de choses.
Maintenant on fournit souvent des routines pour utiliser les degrés car ils semblent souvent plus simples (et ça donne l'impression d'être plus précis :p) mais de toute façon, ce ne sont que des conversions des outils en radian.

PS : Un short signé est entre -32767 et 32767 donc cela équivaut à une précision de 10^(-4) non ? Même si l'utilisation des float est de loin la plus évidente, relativement au fonctionnement du GPU.


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


#6 

03-03-2007 11:13:11

ptitfred
Membres
Avatar de ptitfred
Date d'inscription:
Messages: 21
IP: 82.235.16.81
Courriel  Site web

Oui pardon pour le lapsus, un float smile

Hors ligne


#7 

03-03-2007 12:47:16

diOxy
Membres
Avatar de diOxy
Date d'inscription:
Messages: 153
IP: 41.223.30.150
Courriel

Il est bien évident qu'au niveau programmation je travaille uniquement en radian ne serait-ce que pour des raisons de performances. Ce n'est que pour renseigner l'utilisateur que je met en degrés. Ce serait quand même idiot de chercher la performance et de mettre des conversions radians/degrés partout ! wink


Hors ligne


#8 

03-03-2007 14:55:25

DeusXL
Membres
Avatar de DeusXL
Date d'inscription:
Messages: 174
IP: 82.66.209.23
Courriel

ptitfred Ecris:

Oui pardon pour le lapsus, un float smile

Enfin ce que tu as dit sur les short, ça peut être vrai aussi :p
Par exemple, quand on doit transmettre un angle sur le réseau (sisi ça arrive, cf le protocole de DAoC, le jeu que je connais le mieux de ce point de vue) on utilise un short qui apporte une précision de 10^(-4) lorsqu'on veut se situer entre -PI et +PI et qui se code en deux octets (un double par exemple c'est 64 bits donc 8 octets, et un float je crois que c'est 32 bits donc 4 octets).


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
153 invités en ligne
membre en ligne: -
RSS Feed