J'ai une équation qui peut être utilisé pour trouver l'élévation des armes à feu pour l'artillerie, en utilisant la gamme, la vitesse initiale et le changement d'altitude dans un jeu appelé Arma 3. L'équation ressemble à ceci: Conversion d'une équation au code
Avec g étant l'accélération due à la gravité (9.80665), V étant la vitesse initiale, X étant la plage et Y étant le changement d'altitude (appelé DAlt dans mon code). J'essaie de le convertir en une ligne de code afin que je puisse faire un programme pour calculer l'élévation basée sur des coordonnées données. Cependant, j'ai des problèmes avec ça. J'ai actuellement ceci:
If rdoLow.Checked = True Then
Elevation = Math.Atan(((Velocity^2) - (Math.Sqrt((Velocity^4) - (G) * (G * (Range^2) + (2 * DAlt * (Velocity^2))))))/G * Range)
Else
Elevation = Math.Atan(((Velocity^2) + (Math.Sqrt((Velocity^4) - (G) * (G * (Range^2) + 2 * DAlt * (Velocity^2)))))/G * Range)
End If
Ce qui n'est pas particulièrement agréable mais pour autant que je sache, cela devrait fonctionner. Cependant quand j'ai mis dans les valeurs que la vidéo j'ai eu l'équation d'utilisé, j'ai eu une réponse différente. Donc, il doit y avoir quelque chose qui ne va pas avec mon équation. J'ai essayé de le découper en différentes parties comme des variables séparées et de les calculer, puis en utilisant ces variables dans l'équation globale, et cela ne fonctionnait toujours pas et m'a donné une réponse qui était fausse d'une autre manière.
Je ne sais pas comment résoudre ce problème, et je me demande si la façon dont vb gère les longues équations est différente ou quelque chose comme ça.
Toute aide est très appréciée.
Merci pour votre aide! J'ai supposé qu'il me manquait des parenthèses quelque part mais traverser tout cela était un cauchemar, j'ai essayé à plusieurs reprises de le résoudre et je ne pouvais pas. Cela produit la réponse en radians correcte?Pour convertir en degrés je dirais élévation = (tout cela) * (math.pi/180) à droite? – DatBrummie
Mon diable, je l'ai eu à l'envers. Radians> degrés est 180/pi. Le programme semble fonctionner maintenant. En utilisant les mêmes valeurs que la vidéo, mon programme a donné 60,22 degrés, tandis que la vidéo a donné 61,06 degrés. Je ne vois pas pourquoi ce serait différent, mais c'est assez proche. Merci pour l'aide! – DatBrummie
@thirdwaffle - Exemples de données fournies dans ma réponse. – dbasnett