Degrés ou Radians?

Bonjour à tous et encore merci pour l’aide apportée dans un autre sujet !
(Où placer mes procédures Sub/end sub?)

Je commence à utiliser XOJO de manière assez intensive et y trouve beaucoup de plaisir.
J’ai encore beaucoup de lacunes et en ce moment un petit problème m’irrite.
En effet Xojo ne considère que les valeurs d’angles exprimées en Radians et il est vraiment pénible à tout instant, de passer par Pi (qu’i n’existe pas d’ailleurs en Xojo ) pour afficher les valeurs en ° (degrés).
Existe t’il des bibliothèques mathématiques qui pourraient résoudre ce petit problème , où les trouver et comment les installer ?

Merci par avance.
Amicalement.

Bonjour ,
ce sera bien plus simple de se créer un module, d’y creer une methode globale de conversion
radian en degres et degres en radian
et d’en profiter pour inclure une constante dans ce même module, Pi avec sa valeur.
Bonne journée,

1 Like
Private Const Pi as Number = 3.14159265358979323846264338327950
Public Function DegresToRadians(sourceAngle as Double) As Double
  Return sourceAngle/180*Pi
End Function
Public Function RadiansToDegres(sourceAngle as Double) As Double
  Return sourceAngle/Pi*180
End Function

Merci beaucoup pour cette réponse rapide et précise !
Par contre je ne comprends pas pourquoi je n’ai que 6 décimales à Pi ?
Cordialement.

à quel moment ? au cours de quelle commande ?

J’ai simplement tapé ceci : Text2.Text = " Pi =" + Str(Pi)
Mais ce n’est pas bien grave, j’ai assez de précision.

Utilise Format… regarde la doc pour la syntaxe.

En fait je viens de voir dans la doc que str () renvoie 7 décimales . Pour moi une décimale, ce sont les chiffres après la virgule, mais avec le 3 devant, cela fait 7 chiffres…

Et si tu regarde Format, tu peux avoir bien plus…

En bas de page, il y a des renvois à des instructions intéressantes, en rapport avec l’instruction en cours…

Oui, merci Emile, j’ai vu pour Format , c’est utile pour la présentation, mais ce qui m’importe ici ce sont les calculs eux même et même 7 chiffres significatifs est largement suffisant.

Amicalement.

le calcul se fait sur toutes la precision d’un double, soit de mémoire quelque chose comme 18 decimales…
par contre Str n’affiche par défaut que 6-7 decimales.

Merci Jean-Yves.
J’ai expérimenté la methode et je trouve qu’elle est loin d’être idéale.
Ecrire Radianstodegres(angle) ou bien angle*180/Pi ce la ne change pas grand chose .
Et dans une longue formule, cela alourdit l’écriture…
Je pensais qu’une instruction qui passe Xojo en mode Degrés ou Radians comme sur les calculettes serait bien plus pratique.
Quoi qu’il en soit, un grand merci pour l’aide.
Amicalement.

Dézsolé, mais tu n’as rien compris…

Str() c’est utile pour la présentation (pour reprendre ta phrase).
Format() est juste plus “puissant” (te permet de mieux afficher les données qu’avec Str().

Pour les calculs, ni Str(), ni Format() ne sont utiles.

Apparemment, tu n’as pas non plus compris comment te servir du code partagé par Jean-Yves…

C’est exactement ce que tu demande:
Degré = RadiansToDegres(sourceAngle As Degré)

on peut aussi renommer la fonction en “RtoD” qui prendra moins de place
ou re-ecrire les fonctions dont on a besoin comme Sin en SinDeg ou même Sind qui fait la conversion au passage ? ce n’est pas compliqué à mettre en place, chaque fonction trigo quand on a besoin.

Hello Emile ,
J’ai très bien compris Format() .Certes cela permet d’augmenter jusqu’à 17 le nombre de décimales mais au-delà, cela donne n’importe quoi . Mais comme je l’ai dit je n’ai pas besoin d’autant de précision, c’était une simple remarque.
@ Jean-Yves,
Encore merci pour la solution. Comme je viens de VB.net, je trouve le fait d’isoler les Procédures et Fonctions en dehors du code principal ( Sub Main() ) dans Xojo, un peu lourde et déroutante.
Mais ce n’est qu’une question d’habitude peut-être, l’expérience me le dira.

Amicalement.

si tu as besoin d’une precision illimitée (ou presque) il y a le fp plugin de Bob Delaney
http://delaneyrm.com/fpPlugin.html

Merci Jean-Yves,
J’avais vu cela ce matin en cherchant des plugin de géométrie que je n’ai pas trouvés (pour les sinus directement en degrés) . ("As Double "me suffit.)
Amicalement.

Bjr Michel
Il me semble que tu melanges deux choses:

  • le calcul
  • l’interface
    Les calculs se font toujours avec un double/integer.
    Par contre pour les interfaces tu vas convertir le double/integer avec str/toString/format pour l’affichage avec X décimales
    cdlt
1 Like

Re,
Non pas du tout ! Peut-être que je m’exprime mal ou qu’il y a un grand décalage culturel entre nous,
Je sépare très bien l’affichage du calcul, l’interface du code, sauf que je ne comprends pas que les calculs trigo ne se fasse exclusivement qu’en radians, une simple option, comme sur toutes les calculettes pour faire les calculs soit en Degrés soit en Radians selon les besoins de chacun. C’est tellement facile pour un concepteur de langage de faire cela nativement . J’ai toujours pensé que l’informatique était au service de l’humain et non l’inverse. Je me souviens du progrès apporté par la souris, l’abandon de l’interface console et MSDOS au profit des fenêtres et icônes choses comprises par Mac bien avant les autres.
Et dire qu’il y en a qui s’obstinent à se compliquer la vie avec Python et autres outils du même genre alors qu’il y a d’autres moyens plus agréables et plus directs de construire une interface .

Amicalement.

Mais comme l’a expliqué Michel, c’est très simple de se créer soi même ses propres fonctions en degrés (SinD, CosD, TanD, etc.).
Le radian est l’unité international pour les calculs de ce type, c’est normal qu’elle soit utilisée. Sur les calculettes ils rajoutent l’option degré car c’est impossible de rajouter ces fonctions soi même (et encore faudrait il ajouter des boutons pour que l’utilisateur puise choisir.

1 Like