public void SetFromArgs(string[] args) { if (args.Length == 1 && (args[0] == "?" || args[0] == "help")) { Console.WriteLine("-r imageWidth imageHeight"); Console.WriteLine("-s left right top bottom"); Console.WriteLine("-fn filename"); Console.WriteLine("-c ColorCurve"); Console.WriteLine("-i iterations"); Environment.Exit(0); } for (int i = 0; i < args.Length; i++) { if (args[i] == "-r" || args[i] == "-res" || args[i] == "-resolution") { ImageWidth = int.Parse(args[++i]); ImageHeight = int.Parse(args[++i]); } if (args[i] == "-i") { Iterations = int.Parse(args[++i]); } if (args[i] == "-s") { MandelbrotSection = new Rect( MathExtension.MapRange(double.Parse(args[++i]), 0, 1, -2, 1), MathExtension.MapRange(double.Parse(args[++i]), 0, 1, -2, 1), MathExtension.MapRange(double.Parse(args[++i]), 0, 1, -1, 1), MathExtension.MapRange(double.Parse(args[++i]), 0, 1, -1, 1)); } if (args[i] == "-c") { ColorCurve = ColorCurve.Parse(args[++i]); } } }
private static Color GetColor(double value, double maxValue) => Settings.Global.ColorCurve.Sample(MathExtension.MapRange(value, 0, maxValue, 0, 1));