Module: Ballistics

Defined in:
lib/ballistics.rb,
lib/ballistics/zero.rb,
lib/ballistics/utils.rb,
lib/ballistics/df_map.rb,
lib/ballistics/atmosphere.rb,
lib/ballistics/trajectory.rb,
ext/ballistics/ballistics.c

Defined Under Namespace

Modules: DFMap, Trajectory, Utils, Zero Classes: Atmosphere

Constant Summary collapse

UNIT_CORRECTION_FACTOR =

(7000 gr./lb. * 32.2 f.p.s. ** 2)

225400.to_d
ACCELERATION_OF_GRAVITY =
32.2.to_d

Class Method Summary collapse

Class Method Details

.build_environment(options = {}) ⇒ Object



8
9
10
# File 'lib/ballistics.rb', line 8

def self.build_environment(options = {})
  Ballistics::Atmosphere.new(options)
end

.map_trajectory(options = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/ballistics.rb', line 12

def self.map_trajectory(options = {})
  [:drag_function, :drag_coefficient, :velocity, :sight_height, :zero_range].each do |requirement|
    raise ArgumentError, "Failed to specify: #{requirement}" unless options[requirement]
  end

  # correct ballistic coefficient if an environment was passed
  options[:drag_coefficient] = options[:environment].correct_ballistic_coefficient(options[:drag_coefficient]) if options[:environment]

  options[:zero_angle] = Zero.calculate_zero_angle(options)
  Ballistics::Trajectory.map_trajectory(options)
end