Trigo et degrés

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

djes a écrit :Les processeurs travaillent en radians, donc pure aussi. Si on veut utiliser les degrés ou les grades, il faut faire des conversions, donc on perd en vitesse ET en précision.

A mon avis, une lib serait idéale pour ça, inutile d'embêter Fred avec ce genre de détails, non ?

Et puis maintenant qu'on a des nombres en haute précision, il faut en profiter.
Les processeurs ne travaillent pas avec des radians, ce sont les développement limités des fonctions de trigo qui le font.

La précision des nombres n'a rien à voir là dedans, l'idée étant juste d'automatiser la conversion.

On ne perd rien en vitesse ni même en précision, si jamais tu travailles avec des degrés, tu fais les conversions toi même et ca revient au même...

Une lib ne serait pas idéale pour ca, un subsystem par contre oui (nouveauté de la V4)
cederavic a écrit :Je suis pas tout à fait d'accords, on voit des degrés partout oui, mais a la base, les formules qui donne ces resultats utilisent le radian donc ce qu'on vois a la fin c'est la simple convertion du resultat radian -> degré (le radian etant moin parlant). Et puis c'est l'unité légale, si pure ce met en degré par defaut, il faudra faire les convertion pour chaque formules et au final perdre en vitesse :?
Le système que je propose ne rend pas la conversion des codes difficiles, il suffit d'ajouter ceci en début de code (avec éventuellement les autres initialisations)

Code : Tout sélectionner

SetMathAngles(#PB_Math_Rad)
Vous voyez toujours quelque chose de compliquer ou faut ke je réexplique l'idée ? Je pense que ca a été compris de travers pour plusieurs d'entre vous.

Dri :oops:
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Dr. Dri a écrit : Les processeurs ne travaillent pas avec des radians, ce sont les développement limités des fonctions de trigo qui le font.

La précision des nombres n'a rien à voir là dedans, l'idée étant juste d'automatiser la conversion.

On ne perd rien en vitesse ni même en précision, si jamais tu travailles avec des degrés, tu fais les conversions toi même et ca revient au même...

Une lib ne serait pas idéale pour ca, un subsystem par contre oui (nouveauté de la V4)
Actuellement, la conversion du code PB pour les fonctions trigonométriques en assembleur est réduite au minimum, du fait qu'elle repose sur les instructions natives des processeurs (pas la peine de me dire que les processeurs ne travaillent pas en radians, je m'en fous, ce que je sais c'est que les instructions qu'on utilise en asm sont toutes en radians).
Dans une lib, toute conversion, basée sur une variable définie par la fonction SetMathAngles, induirait obligatoirement des tests à chaque utilisation d'une fonction trigo. Un test, c'est une ou plusieurs instruction de plus, ce serait donc plus lent dans tous les cas, même dans l'utilisation des radians. Ca, je n'en veux pas.

Si on utilise un subsystem comme tu le proposes, on élimine le test. Par contre, on n'évite pas la conversion, et je suis d'accord avec toi pour dire qu'en natif ce serait plus rapide et plus propre que de refaire ces fonctions soi-même dans des procédures ou autres.

Donc, je suis pour ta proposition.

Cela mis à part, personnellement, je n'utilise pas les degrés quand je programme, car outre la perte de vitesse (pas énorme j'entends bien), la conversion engendre des pertes au niveau de la précision, même si elles sont infimes. Je ne comprends pas pourquoi tu me dis que non?!

Quant à dire que dans la vie de tous les jours, on utilise plus souvent les degrés, c'est faux. La plupart des gens qui travaillent dans la topo, le btp, etc. utilisent les grades, essentiellement car c'est beaucoup plus simple à calculer de tête sur le terrain. Et en maths, à ma connaissance, on se passe très vite des degrés, tout simplement parce que les radians permettent de se représenter beaucoup plus facilement les opérations sur le cercle, etc.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Je veux dire, pour une personne qui utilise des degrés, il n'y aura pas de perte de précision, il y a même des chances pour que ce soit plus précis (en utilisant un Pi de plus de 6 décimales...)

Si tu utilises des radians et que exécutes un SetMathAngles(#PB_Math_Rad), aucune conversion ne devrait être faite, pas de perte de précision.

Après je suis d'accord que ca ajoute au moins un test, et que ce petit test "ralenti" l'exécution du programme mais bon tu l'as dit toi même ca n'a rien d'énorme.

J'espère avoir bien été compris cette fois ^^
Je suis jamais très doué pour m'expliquer lol

Dri :)
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Ah oui, tu voyais ça au niveau de la personne! Moi du côté programme (l'habitude de l'optim!)
Moi c'est pareil, j'ai parfois du mal à me faire comprendre! :P

En tout cas, la nouvelle version va nous permettre de faire pas mal de belles choses, surtout pour la 3d, où le manque de précision des flottants faisait défaut! Je suis super content!
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Message supprimé
Dernière modification par Guimauve le sam. 11/févr./2006 2:39, modifié 1 fois.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

C'est pas comme si c'était compliqué à faire... Une fonction qui renvoi le mode, une autre qui le change. Et le reste fait automatiquement. C'est vraiment un truc tout con mais très pratique, alors que tu présentes ca comme le changement qui fera prendre 3 mois de retard au reste.

Faut pas abuser non plus, je demande des conversions transparentes pour plusieurs raisons:
-c'est transparent pour l'utilisateur
-c'est paramétrable (3 unités au choix)
-ca simplifie aussi les noms des fonctions de conversion

Je devrais peut-être faire un post bien détaillé de ce que je propose ?

Dri -_-
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Message supprimé
Dernière modification par Guimauve le sam. 11/févr./2006 2:39, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Quant à dire que dans la vie de tous les jours, on utilise plus souvent les degrés, c'est faux. La plupart des gens qui travaillent dans la topo, le btp, etc. utilisent les grades,

oui d'ailleurs c'est bien connu les bousoles, les Compas , sont gradué en radiants :lol: :lol: :lol:

avez vous mis les pieds dans un avion ? (ou simulateur de vol)
ou un Bateau ?

le theoreme de pytagore , tales, la trigo , en general s'exprime bien en DEGRES pas en RADIANT !!

la somme des angle d'un triangle rectangle est egale a 180 DEGRES pas RADIANT , faut arreter de boire les gars :lol:

en dessin industriel on utilise , l'equerre (en degres)
le Raporteur (degres, et une autre mesure, radian ou grade)

n'importe qui peut se representer de tete 30°,60°,90 °,270°,180°,360°
la facilite de representation, ce n'est pas la raison pour laquel il faille preferer le radian !

Le degré fut utilisé pendant plus de 2 000 ans. Ce n’est qu’en 1873 qu’apparaît pour la première fois le mot radian, imprimé dans des textes d’examens proposés au Queen’s College de Belfast par James Thomson, même si cette émergence était préparée par plus d’un demi-siècle d’utilisation implicite.
le degres etant le plus ancien system, il est donc la norme , et il devrai etre employé dans un language de prog , d'ailleurs quasi tout les language propose les degres !! (meme le ci-décrié DarkBasic)
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Faux dobro.

La plupart des théorèmes sur les angles que tu utilises se démontrent à l'aide de la géométrie vectorielle, donc à l'aide des angles orientés, donc à l'aide des radians. Pythagore est un partie du théorème d'Al-Kashi qu'on utilise le plus sovuent avec des radians. La trigo s'utilise bel et bien avec des radians. Tout le monde te dira de tête que cos Pi/4 (45°) vaut sqr(2)/2. C'est plus simple. Et représenter pi/2 etc ne pose aucun problème (suffit de faire un cercle trigo). Et la somme des angles dans un triangle (indémontrable avec les angles en degré) fait pi.

Bref j'en passe, le radian est utilisé dans tous les domaines que tu as cité ;).
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Tu veux que je te montre les compas, boussoles que j'utilise? Ils sont en grades. Le degré n'a rien de pratique, c'est juste une habitude! Il parait que c'est un système basé sur l'année solaire, de 365 jours. Si tu y réfléchis, tu verras qu'il est même plus pratique d'utiliser les minutes ou les heures, pour se représenter un angle.

Ca me fait penser aux pieds, pouces et autres bizarreries hérités de nos ancêtres et dont nous ne sommes pas encore définitivement débarassées.

Pour finir, le radian est l'unité de mesure internationale des angles.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Si tu y réfléchis, tu verras qu'il est même plus pratique d'utiliser les minutes ou les heures, pour se représenter un angle.
c'est quand meme curieux que comme par hasard

60 minutes d'arc= 1 degres ! non ? :)

Tu veux que je te montre les compas, boussoles que j'utilise? Ils sont en grades.
ça existe peut etre ? , mais je regrete c'est loin d'etre la norme !
en navigation aeronautique , ou fluvial , on est toujours avec des instrument en degres (en dehors du Gps)


en tout cas je ne denigre pas le Radian , mais vous , vous denigré les degres , c'est surtout ça qui m'herisse a la base !!

je demande les degres , car pour un jeux video
se representer l'ennemi a 60 ° ou a 90 ° et bien plus evident qu'un PI divise ou multiplier par quelques chose !! :?


lorsque je lis
Tout le monde te dira de tête que cos Pi/4 (45°) vaut sqr(2)/2.
la on frise le comique :lol: :lol:
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Moi je n'ai rien contre les degrés, mais je ne veux pas d'un truc qui ralentirait les fonctions natives de pure.

Je parlais des grades comme d'un exemple pour te montrer que les degrés ne sont pas si évidents que tu veux bien le faire croire! Tu es aussi borné que nous, tu ne veux pas te remettre en question, c'est pourtant clair pour un néophyte que compter un angle de 0 à 360 n'a rien de pratique ni de simple.

Moi je me suis mis aux radians il y a longtemps et dans mon esprit c'est aussi simple que les degrés ou les grades. Il suffit de voir qu'un cercle vaut 2*Pi (360°). Après on fonctionne tout en division de la valeur du cercle et ça devient enfantin! Un demi cercle? 2*Pi/2 (Pi quoi!). Un 5ème de cercle? 2*Pi/5. Un dixième? 2*Pi/10

Pour la programmation, l'intérêt est évident dès que tu utilises les sinus et cosinus, car la valeur renvoyée te donne directement la distance x,y d'un point sur le cercle de rayon 1 (cercle trigo) selon l'angle donné par rapport au centre. Tu n'as plus qu'à multiplier pour faire des calculs sur tous les cercles que tu veux et autres joyeusetés

Mais pour ça, il faut comprendre qu'il est bien plus pratique de faire des calculs sur une échelle de 0 à 1, plutôt que sur une échelle de 0 à 100.

Par contre, comme je ne suis pas un vrai matheux, pour l'exemple sur cos pi/4 je suis d'accord avec toi :lol:
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

Image

Plus de jaloux :lol:
Est beau ce qui plaît sans concept :)
Speedy Galerie
CameleonTH
Messages : 333
Inscription : sam. 25/juin/2005 11:18
Localisation : Laon (02)
Contact :

Message par CameleonTH »

J'ai fais sa en math l'année derniere. :D
Good07
Messages : 308
Inscription : ven. 23/avr./2004 18:08
Localisation : Hérault 34190 Laroque

Message par Good07 »

Moi, je me souviens du basic de l'amstrad (Locomotive basic) où on mettait le mot clef Deg en début de listing et tout les calculs se faisaient en degré ou bien le mot clef Rad pour ceux qui préféraient effectuer les calculs en radian.
Simple... et tous le monde était content. :D
Répondre