cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 26 déc. 2008 à 22:46
dama78, il y a une toute petite différence entre la solution VBA proposée par fauve et ma formule Excel.
Si tu emploies ma formule, tu dois nommer une cellule pourcentage et y saisir le pourcentage (9 pour 9%, par exemple). Si tu utilises la fonction, l'argument x doit être la pente (0.09 pour 9%). A cette différence près, les solutions sont identiques.
En toute rigueur, même si j'ai répondu précisément à ta question (formule), c'est fauve qui t'a donné la bonne réponse (code), puisque nous sommes sur un forum de développeurs. Mais bon à vbfrance, on a l'esprit ouvert (à répéter sur les autres forums).
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 26 déc. 2008 à 19:56
Salut
Orohena : Tu es sur de toi ?
Parce que pour moi, une pente à 100%, c'est 45°.
Quand tu as une pente à 45°, tu montes de 100m quand tu avances de 100m.
Donc, en toute logique :
Degré = 45 / 100 * monPourcentage
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Il ne nous reste plus qu'à l'inverse de la tangente pour obtenir l'angle.
Voilà pour la théorie
Pour la pratique c'est à dire pour coder tout çà en VB.NET, cela va s'avérer légèrement plus complexe car ArcSin, ArcCos et ArcTan ne sont pas disponibles directement en VB.NET, mais peuvent être implémentées très simplement à partir des formules existantes.
Ainsi, ArcTan (X) = 2 * Tan(1) - Tan(X)
Le résultat obtenu alors exprimé est l'angle ß en Radian, il faut donc convertir cette angle en degré.
D'où la formule suivante qui effectue la conversion Radian >>> Degré : ArcTan(X) = ( ArcTan(X) * 180 ) / Pi
Voici donc la fonction complète en VB.NET :
Syntaxe : Pour une pente de 9 %
ArcTan(9/100)
La fonction retourne l'angle en degré de la pente à 9 %.
Pour une pente de 100 % , elle retourne bien 45°
Function ArcTan(ByVal x As Double) As Double
Dim valeur As Double
' On récupère la valeur de l'angle de la pente en radian
valeur = 2 * Math.Atan(1) - Math.Atan(x)
' Conversion de l'angle en radian en degré
valeur = (valeur * 180 ) / Math.PI
' On retourne la valeur de l'angle en degré
Return valeur
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 26 déc. 2008 à 21:47
Salut
Oui, la pente à 100%, c'est bien 45°, puisque l'on monte de 100m lorsqu'on avance de 100m ; donc :
Sin(Radians) = Cos(Radians)
ou encore
Tan(Radians) = 1
d'où
Radians Arc Tangente(1) 0.785
et donc
Degres Radians * 180 / pi 0.785 * 180 / 3.14 = 45 => on est bien d'accord.
Quant à l'équation
Degré = 45 / 100 * monPourcentage
elle pose le principe que le rapport entre l'angle et sa tangente (monPourcentage / 100) est constant !
C'est une théorie à laquelle j'adhère avec enthousiame, car si l'on admet qu'un angle est proportionnel à une de ses fonctions trigonométriques, on démontre de facto que la trigonométrie est un faux problème.
Bon, d'un côté, ça aura pour conséquence cruelle de mettre quelques profs de math au chômage mais, comme on dit, on ne fait pas d'omelette sans casser d'oeufs ; et, de toute façon, ils n'avaient qu'à choisir un bon taf .
D'un autre côté, je pense avec envie à toutes les générations d'écoliers à venir, qui n'auront plus désormais à se prendre la tête avec des calculs débiles, et qui nous voueront une reconnaissance éternelle.
Bon, il reste à convaincre les professeurs d'université du bien-fondé de notre théorie. Sans oublier de négocier avec les pouvoirs publics pour que les profs menacés de licenciement gardent leur emploi et puissent payer leur loyer jusqu'à ce que le thermomètre remonte au-dessus de 10°. C'est vrai, quoi, on n'est pas des brutes .
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 déc. 2008 à 12:57
lol
Tout ça pour une pente d'un toit !
Orohema et Fauve : Belles démonstrations !
C'est vrai que ma formule était un peu simpliste et ... fausse puisqu'il ne s'agit pas d'une variation linéaire.
Méa culpa
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 27 déc. 2008 à 20:20
Pas de souci, jack. Plus tu donnes de (bonnes) réponses sur le forum, plus tu t'exposes à faire une petite exception de temps à autre. C'est une fatalité favorable aux nuls qui, à l'inverse, chaque fois qu'ils se manifestent augmentent un peu plus leurs chances de dire quelquechose d'intelligent. J'appelle ça la loi de la montre arrêtée, partant du constat que même une montre arrêtée indique l'heure juste 2 fois sur 86400 chaque jour.
Amicalement
ps : à part moi, peut-être, il n'y a pas de nuls sur vbfrance, et surtout pas parmi les admin qui font un boulot super...
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 28 déc. 2008 à 15:26
Ca fait du bien un peu de philosophie dans ces pages trop souvent remplies à la va-vite ! merci
Il y a aussi la théorie statistique "Shadok" :
"Plus tu te trompes, plus tu as de chance de réussir"