Ballistic Calculator

The library provides trajectory calculations for projectiles, including for various applications, including air rifles, bows, firearms, artillery, and so on.

3DF (3 degrees of freedom) model that is used in this calculator is rooted in old C sources of version 2 of the public version of the JBM calculator, ported to C#, optimized, fixed, and extended with elements described in Litz's "Applied Ballistics" book and ideas of the friendly project by Alexandre Trofimov.

Changes made since porting original C sources:

The source code of the library is available in git: https://github.com/gehtsoft-usa/BallisticCalculator1

Please feel free to report defects in Git Issues.

The library is also available in Go: https://github.com/gehtsoft-usa/go_ballisticcalc

For those who are looking for a JavaScript version, I highly recommend Yet Another Ballistic Calculator project of our friend Alexandre Trofimov.

The current status of the project is ALPHA version.

Suggested reading:

Recommended books: Applied Ballistics For Long Range Shooting 3rd Edition by Bryan Litz

Most of variables and parameters in the library are defined using special data type Measurement, defined in Gehtsoft.Measurement package. This allows you to seamlessly switch between metric and US system or even use them both in the same calculation.

Articles

License Information

The information about the license

Risk Notice

The explanation of the risks associated with using 3DF algorithms

No Warranty Notice

The explanation that no warranties of any kind is associated with this code

Usage example

The example of library use

Groups

Namespace BallisticCalculator

The classes related to calculate a projectile trajectory.

Namespace BallisticCalculator.Reticle

The classes to define and draw reticles.

Namespace BallisticCalculator.Reticle.Data

The classes used to define the reticle image.

Namespace BallisticCalculator.Reticle.Draw

The classes to draw a reticle and trajectory parameters as SVG image.

Namespace BallisticCalculator.Serialization

The classes related to serialization of the library data.

Namespace BallisticCalculator.Data.Dictionary