Class GearRatio

java.lang.Object
me.wobblyyyy.pathfinder.math.GearRatio

public class GearRatio
extends java.lang.Object
A virtual representation of an input/output gear ratio. A specified amount of input rotation corresponds to a specified amount of output rotation. The intention of the gear ratio class is to make it easier to figure out gear ratios - putting in a double can be somewhat hard to interpret at times.
Since:
0.3.0
Author:
Colin Robertson
  • Field Summary

    Fields
    Modifier and Type Field Description
    private double inputRotations
    The input component of the ratio.
    private double inputToOutput
    The ratio of inputs to outputs.
    private double outputRotations
    The output component of the ratio.
    private double outputToInput
    The ratio of outputs to inputs.
  • Constructor Summary

    Constructors
    Constructor Description
    GearRatio​(double inputRotations, double outputRotations)
    Create a new GearRatio by providing both input and output values.
  • Method Summary

    Modifier and Type Method Description
    double getInputRotations()
    Get the input rotations component of the ratio.
    double getInputToOutputRatio()
    Get the ratio between input and output rotations.
    double getOutputRotations()
    Get the output rotations component of the ratio.
    double getOutputToInputRatio()
    Get the ratio between output and input rotations.
    double howManyIn​(double output)
    How many input rotations is the specified output rotation worth? If you have a gear ratio of 2:1, and you fed this method 1, this method would return the following value: 2.
    double howManyOut​(double input)
    How many output rotations is the specified input rotation worth? If you have a gear ratio of 2:1, and you fed this method 1, this method would return the following value: 0.5.
    static GearRatio oneInputEquals​(double oneOutput)
    Create a new GearRatio where one input rotation equals the specified number of output rotations.
    static GearRatio oneOutputEquals​(double oneInput)
    Create a new GearRatio where one output rotation equals the specified number of input rotations.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • inputRotations

      private final double inputRotations
      The input component of the ratio.
    • outputRotations

      private final double outputRotations
      The output component of the ratio.
    • inputToOutput

      private final double inputToOutput
      The ratio of inputs to outputs. 1 input = ? output.
    • outputToInput

      private final double outputToInput
      The ratio of outputs to inputs. 1 output = ? input.
  • Constructor Details

    • GearRatio

      public GearRatio​(double inputRotations, double outputRotations)
      Create a new GearRatio by providing both input and output values. If, say, you have a 2:1 gear ratio, you can call this constructor and pass those parameters in that order.
      Parameters:
      inputRotations - the amount of input rotations that corresponds to however many output rotations.
      outputRotations - the amount of output rotations that corresponds to however many input rotations.
      See Also:
      oneInputEquals(double), oneOutputEquals(double)
  • Method Details

    • oneInputEquals

      public static GearRatio oneInputEquals​(double oneOutput)
      Create a new GearRatio where one input rotation equals the specified number of output rotations.
      Parameters:
      oneOutput - how much each input rotation should turn the output rotation value by.
      Returns:
      a shiny new GearRatio.
    • oneOutputEquals

      public static GearRatio oneOutputEquals​(double oneInput)
      Create a new GearRatio where one output rotation equals the specified number of input rotations.
      Parameters:
      oneInput - how much each output rotation should turn the input rotation value by.
      Returns:
      a shiny new GearRatio.
    • getInputRotations

      public double getInputRotations()
      Get the input rotations component of the ratio. THIS IS NOT A RATIO! This is just how many input rotations equal however many output rotations - nothing more, nothing less.
      Returns:
      the input component of the gear ratio.
    • getOutputRotations

      public double getOutputRotations()
      Get the output rotations component of the ratio. THIS IS NOT A RATIO! This is just how many output rotations equal however many input rotations - nothing more, nothing less.
      Returns:
      the output component of the gear ratio.
    • getInputToOutputRatio

      public double getInputToOutputRatio()
      Get the ratio between input and output rotations. This ratio can best be expressed as output divided by input.
      Returns:
      the ratio of input rotations to output rotations.
    • getOutputToInputRatio

      public double getOutputToInputRatio()
      Get the ratio between output and input rotations. This ratio can best be expressed as input divided by output.
      Returns:
      the ratio of output rotations to input rotations.
    • howManyOut

      public double howManyOut​(double input)
      How many output rotations is the specified input rotation worth? If you have a gear ratio of 2:1, and you fed this method 1, this method would return the following value: 0.5.
      Parameters:
      input - the amount of rotations to calculate for.
      Returns:
      the calculated amount of output rotations.
    • howManyIn

      public double howManyIn​(double output)
      How many input rotations is the specified output rotation worth? If you have a gear ratio of 2:1, and you fed this method 1, this method would return the following value: 2.
      Parameters:
      output - the amount of rotations to calculate for.
      Returns:
      the calculated amount of output rotations.