public float X {get; set;}
public float Z {get; set;}
public Position(float x, float z){
public static void Main()
var pos = new Position(0,0);
var h = (float)((pos.X + Math.Sin((pos.Z + pos.X) / 35) * 35) % 150) / 150;
var color = HSBtoRGB(h, 0.6F, 1.0F);
Console.WriteLine(string.Format("#{0:X2}{1:X2}{2:X2}",
Console.WriteLine(string.Format("hsb({0}, 60, 100)", h));
public static Color HSBtoRGB(float hue, float saturation, float brightness)
r = g = b = (int)(brightness * 255.0f + 0.5f);
float h = (hue - (float)Math.Floor(hue)) * 6.0f;
float f = h - (float)Math.Floor(h);
float p = brightness * (1.0f - saturation);
float q = brightness * (1.0f - saturation * f);
float t = brightness * (1.0f - (saturation * (1.0f - f)));
r = (int)(brightness * 255.0f + 0.5f);
g = (int)(t * 255.0f + 0.5f);
b = (int)(p * 255.0f + 0.5f);
r = (int)(q * 255.0f + 0.5f);
g = (int)(brightness * 255.0f + 0.5f);
b = (int)(p * 255.0f + 0.5f);
r = (int)(p * 255.0f + 0.5f);
g = (int)(brightness * 255.0f + 0.5f);
b = (int)(t * 255.0f + 0.5f);
r = (int)(p * 255.0f + 0.5f);
g = (int)(q * 255.0f + 0.5f);
b = (int)(brightness * 255.0f + 0.5f);
r = (int)(t * 255.0f + 0.5f);
g = (int)(p * 255.0f + 0.5f);
b = (int)(brightness * 255.0f + 0.5f);
r = (int)(brightness * 255.0f + 0.5f);
g = (int)(p * 255.0f + 0.5f);
b = (int)(q * 255.0f + 0.5f);
return Color.FromArgb(Convert.ToByte(255), Convert.ToByte(r), Convert.ToByte(g), Convert.ToByte(b));