Page 1 sur 1

Bug, ou pas bug???

Publié : dim. 16/sept./2007 15:29
par Chris
Sachant que le calcul de la corde d'un arc est égal à 2*r*sin(angle/2), en mettant un angle de 180°, le résultat devrait être égal au diamètre du cercle!

D'autant plus que le calcul de l'arc me donne bien un résultat égal au demi périmètre. :?

Me gourre-je???

Code : Tout sélectionner

D = 100     ; Longueur du Diamètre
R = 50      ; Longueur du Rayon
A = 180     ; Angle

Debug 2 * R * Sin(A/2)

; Resultat = 89.399666360055789   <--- C'est faux??? Ca devrait faire 100 (= le diamètre)

Publié : dim. 16/sept./2007 15:34
par Backup
pis on est en RADIANT la non ?

Code : Tout sélectionner

d = 100     ; Longueur du Diamètre
R = 50      ; Longueur du Rayon
a = 180     ; Angle

Debug 2 * R * Sin(a*(#PI/180)/2) 
la ça marche ! :D

ou bien

Code : Tout sélectionner

Declare.f  radiant(angle.f)

d = 100     ; Longueur du Diamètre
R = 50      ; Longueur du Rayon
a.f = 180     ; Angle
  
Debug 2 * R * Sin(radiant(a.f)/2) 

Procedure.f radiant(angle.f)
  angle.f*#PI/180
  ProcedureReturn  angle.f
EndProcedure

Publié : dim. 16/sept./2007 15:37
par Chris
Non, ça ne va pas. Relis le message de départ.

Edit: Si, ça va. T'as posté en même temps que moi.

Putain, c'est vrai que Pure utilise le radian comme unité :oops:

Publié : dim. 16/sept./2007 15:44
par Backup
Chris a écrit :Non, ça ne va pas. Relis le message de départ.

Edit: Si, ça va. T'as posté en même temps que moi.

Putain, c'est vrai que Pure utilise le radian comme unité :oops:
oui je trouve ça galère perso, je préfère les degrés , c'est plus simple :D

Publié : dim. 16/sept./2007 15:47
par Chris
Dobro a écrit :
Chris a écrit :Non, ça ne va pas. Relis le message de départ.

Edit: Si, ça va. T'as posté en même temps que moi.

Putain, c'est vrai que Pure utilise le radian comme unité :oops:
oui je trouve ça galère perso, je préfère les degrés , c'est plus simple :D
C'est pas plus simple. C'est juste qu'on a été habitué (à tort, peut-être), à mesurer les angles en degrés.

Publié : dim. 16/sept./2007 15:55
par Chris
Bon, par contre, il y a un autre truc que je pige pas.

Pourquoi il faut transformer en radians l'angle pour la formule de la longueur de la corde (2 * R * Sin(A/2)), alors que pour le calcul de l'arc, (#PI * R * (A/180)) il ne faut pas?

Publié : dim. 16/sept./2007 16:08
par Backup
Chris a écrit :Bon, par contre, il y a un autre truc que je pige pas.

Pourquoi il faut transformer en radians l'angle pour la formule de la longueur de la corde (2 * R * Sin(A/2)), alors que pour le calcul de l'arc, (#PI * R * (A/180)) il ne faut pas?
ha bah si il faut! :)

t'es sur de ta formule de calcul ??
peut etre a tu récuperé une formule qui marche seulement avec les Radiant justement :)

oui confirmation
http://fr.wikipedia.org/wiki/Cercle

ta formule vaut pour un angle en Radiant pas en degres !! :D
sous-tendu par un angle α, exprimé en radians, est égale à α ⋅ r. Ainsi, pour un angle de 2π (un tour complet), le périmètre (la circonférence) du cercle vaut 2πr.

La longueur d'une corde sous-tendue par un angle α est égale à 2⋅r⋅sin(α/2).

Publié : dim. 16/sept./2007 16:29
par Chris
Ben justement.

Dans ce code, l'angle est donné en degrés (180), et le calcul de l'arc (et pas de la corde) me retourne bien la valeur de la moitié du périmètre, ce qui est normal.

Et pourtant, je n'ai pas converti l'angle en radians.

Code : Tout sélectionner

D = 100     ; Longueur du Diamètre
R = 50      ; Longueur du Rayon
A = 180     ; Angle

Debug "Périmètre = " + StrF(#PI * D, 4)
Debug "Demi périmètre = " + StrF((#PI * D)/2, 4)
Debug "Arc de cercle = " + StrF(#PI * R * (A/180), 4)


Publié : dim. 16/sept./2007 17:10
par Backup
Chris a écrit :Ben justement.

Dans ce code, l'angle est donné en degrés (180),
ne serait ce pas une coincidence ?? t'as testé avec un autre angle ??
90 par exemple...

Publié : dim. 16/sept./2007 17:17
par Chris
Ben oui! Tu penses bien que c'est la première chose que j'ai faite avant de poster.
Et j'ai aussi testé avec 45°, le resultat est toujours correct.

Mais bon. Puisque ça fonctionne, faut pas chercher à comprendre.

Publié : dim. 16/sept./2007 17:19
par Backup
Chris a écrit :Ben oui! Tu penses bien que c'est la première chose que j'ai faite avant de poster.
Et j'ai aussi testé avec 45°, le resultat est toujours correct.

Mais bon. Puisque ça fonctionne, faut pas chercher à comprendre.
peut etre un bug de PB :roll: :? :)

Publié : dim. 16/sept./2007 18:09
par comtois
Chris a écrit :Ben justement.

Dans ce code, l'angle est donné en degrés (180), et le calcul de l'arc (et pas de la corde) me retourne bien la valeur de la moitié du périmètre, ce qui est normal.

Et pourtant, je n'ai pas converti l'angle en radians.

Code : Tout sélectionner

D = 100     ; Longueur du Diamètre
R = 50      ; Longueur du Rayon
A = 180     ; Angle

Debug "Périmètre = " + StrF(#PI * D, 4)
Debug "Demi périmètre = " + StrF((#PI * D)/2, 4)
Debug "Arc de cercle = " + StrF(#PI * R * (A/180), 4)

La longueur d'un arc c'est A.R , avec A en radian.
Pour l'avoir en Degré tu fais A.R.#PI/180, et là tu retrouves bien ton calcul, avec un angle en degré.

Publié : dim. 16/sept./2007 18:26
par Chris
Donc, en fait, la conversion est déjà contenue dans la formule que j'utilise, à l'insu de mon plein gré. :?

Publié : dim. 16/sept./2007 23:04
par djes
Tu ne t'en rends pas compte, mais tu définis le radian avec ta formule. C'est normal qu'il n'y ait pas besoin de conversion! Regarde la version anglaise (souvent meilleure et plus claire pour les maths) de wiki là dessus : http://en.wikipedia.org/wiki/Radian