Mr. Williams
Mr. Williams

Reputation: 1

Adjusting initial bullet angle to match user set distance(scope zero) (for math gods)

So my question is pretty specific, which means it was pretty hard to find anything that could help me on google or stackoverflow.

I want to give users the ability to set the distance/range on their guns. I have almost everything I need to make this happen, I just don't have the angle that I need to add on to the direction angle at which the bullet comes from. I don't know what equation/formula I would need to get this. I am not looking for anything code-specific, just an idea of what/how to do this.

Since I do not know what formula to use, I just started messing around with some numbers with this formula I found:

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

I just replaced Range with the whatever zero the user is on. I have a feeling I would just toss the MilsToRaiseScope into a trigonometry function. But I'm not sure.

If anyone is confused as to what I'm talking about, you can find an example of what I want in Battlefield 4 or any of the Arma games. With snipers, you can zero in the scope on to whatever distance you need so you won't have to adjust for bullet drop on the scope.

Sorry for the long question, just want to make sure everyone understands! :)

Upvotes: 0

Views: 44

Answers (2)

Bram
Bram

Reputation: 8283

I am using a 2D table look up for this.

I generate the table by doing a whole bunch of test firings at different angles, and record the path of the bullet for each angle.

To analytically determine this, it can get quite complex if aerodynamic drag is involved.

It is also discussed on this game-specific question.

For inspiration, this animated gif is great.

Upvotes: 0

MBo
MBo

Reputation: 80187

Mils corresponds to (military) angular measurement unit of 1/1000 of radian, so it is ready-to-use angle

Second formula looks strange. Height loss depends on time of flight:

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

where g is 9.81 m/sec^2

Upvotes: 0

Related Questions