2017-07-28 5 views
0

Donc ma question est assez spécifique, ce qui signifie qu'il était assez difficile de trouver quelque chose qui pourrait m'aider sur google ou stackoverflow.Ajuster l'angle de balle initial pour correspondre à la distance définie par l'utilisateur (portée zéro)

Je souhaite donner aux utilisateurs la possibilité de définir la distance/portée sur leurs pistolets. J'ai presque tout ce dont j'ai besoin pour que cela se produise, je n'ai tout simplement pas l'angle que je dois ajouter à l'angle de direction d'où provient la balle. Je ne sais pas quelle équation/formule je devrais obtenir ceci. Je ne cherche rien de spécifique au code, juste une idée de quoi/comment le faire.

Comme je ne sais pas quelle est la formule à utiliser, je viens de commencer déconner avec quelques chiffres avec cette formule que j'ai trouvé:

(This formula applies to actual sniper) 
Range = 1000 * ActualTargetHeight/TargetHeightInMils(on the scope) 
BulletDrop = BulletDropSpeed*Range^2/2*VelocityOfTheBullet  
MilsToRaiseScope = 1000 * BulletDrop * RangeToTarget 

Je viens de remplacer Plage avec le zéro quel que soit l'utilisateur est activé. J'ai l'impression de simplement lancer le MilsToRaiseScope dans une fonction de trigonométrie. Mais je ne suis pas sur.

Si quelqu'un est confus quant à ce dont je parle, vous pouvez trouver un exemple de ce que je veux dans Battlefield 4 ou l'un des jeux Arma. Avec les tireurs d'élite, vous pouvez mettre à zéro la portée sur la distance dont vous avez besoin, donc vous n'aurez pas à ajuster pour la chute de balle sur la portée.

Désolé pour la question longue, je veux juste m'assurer que tout le monde comprend! :)

Répondre

0

Mils correspond à (militaire) unité de mesure angulaire 1/1000 de radian, de sorte qu'il est prêt angle à utiliser

formule seconde bizarres. la perte de la hauteur dépend du temps de vol:

dH = g*t^2/2 = g * (Range/VelocityOfTheBullet)^2/2 

où g est 9,81 m/s^2