private Dictionary <int, int> GetDistribution(RandomGeneratorInterface generator) { var buckets = new Dictionary <int, int>(); for (var i = 0; i < graphIterations; i++) { var bucket = Mathf.FloorToInt(generator.Get() / graphPrecision); if (!buckets.ContainsKey(bucket)) { buckets[bucket] = 0; } buckets[bucket]++; } return(buckets); }
private void DrawDistribution(RandomGeneratorInterface generator, LineRenderer lineRenderer) { var buckets = GetDistribution(generator); var positions = new List <Vector3>(); var numBuckets = buckets.Count; var minX = buckets.Keys.Min() + 1; var maxX = buckets.Keys.Max() - 1; var maxY = (float)buckets.Values.Max(); for (var i = minX; i < maxX; i++) { var y = buckets.ContainsKey(i) ? buckets[i] : 0f; positions.Add(new Vector3(i * graphPrecision, 10 * y / maxY, 0)); } lineRenderer.positionCount = positions.Count; lineRenderer.SetPositions(positions.ToArray()); }