Page 2 sur 5

Publié : dim. 05/févr./2006 14:09
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:

Publié : dim. 05/févr./2006 15:49
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.

Publié : dim. 05/févr./2006 16:03
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 :)

Publié : dim. 05/févr./2006 16:16
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!

Publié : dim. 05/févr./2006 16:32
par Guimauve
Message supprimé

Publié : dim. 05/févr./2006 16:45
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 -_-

Publié : dim. 05/févr./2006 17:26
par Guimauve
Message supprimé

Publié : dim. 05/févr./2006 18:03
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)

Publié : dim. 05/févr./2006 19:55
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é ;).

Publié : dim. 05/févr./2006 21:59
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.

Publié : dim. 05/févr./2006 22:15
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:

Publié : dim. 05/févr./2006 23:32
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:

Publié : lun. 06/févr./2006 2:01
par Frenchy Pilou
Image

Plus de jaloux :lol:

Publié : lun. 06/févr./2006 13:54
par CameleonTH
J'ai fais sa en math l'année derniere. :D

Publié : lun. 06/févr./2006 15:10
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