/// <summary> /// Constructs a new FrequencyFloatGenerator object. The given elements and frequencies /// together describe a piecewise linear distribution. /// </summary> /// <param name="elements">Samples of elements to generate.</param> /// <param name="frequencies">The (relative) frequency to generate the sample at.</param> public FrequencyFloatGenerator(IEnumerable <float> elements, IEnumerable <float> frequencies) { var accumulutiveProbability = new List <float>(); accumulativeSum = 0f; foreach (var frequency in frequencies) { accumulativeSum += frequency; accumulutiveProbability.Add(accumulativeSum); } responseCurve = new ResponseCurveFloat(accumulutiveProbability, elements); floatGenerator = new UniformFloatGenerator(); }
public static ResponseCurveFloat GetLerp(float x0, float x1, float y0, float y1) { var input = new List <float>(); var output = new List <float>(); input.Add(x0); input.Add(x1); output.Add(y0); output.Add(y1); var responseCurve = new ResponseCurveFloat(input, output); return(responseCurve); }