Method: Joules.focal_length

Defined in:
lib/joules/waves.rb

.focal_length(object_distance, image_distance) ⇒ Float

Calculates the focal length of a lens given object distance and image distance.

Examples:

Joules.focal_length(45.7, 22.8) #=> 15.21109489051095

Parameters:

  • object_distance (Int, Float)

    object_distance > 0; object_distance is in metres

  • image_distance (Int, Float)

    image_distance > 0; image_distance is in metres

Returns:

  • (Float)

    return value >= 0; return value is in metres

Raises:

  • (ZeroDivisionError)

    if object_distance = 0 or image_distance = 0



181
182
183
184
185
186
187
# File 'lib/joules/waves.rb', line 181

def focal_length(object_distance, image_distance)
  if object_distance.zero? || image_distance.zero?
    raise ZeroDivisionError.new('divided by 0')
  else
    return 1 / ((1.0 / object_distance) + (1.0 / image_distance))
  end
end