Saturate() публичный статический Метод

public static Saturate ( double n ) : double
n double
Результат double
Пример #1
0
        public static Vector3 TemperatureToRGB(float temperature)
        {
            Vector3 vector = new Vector3();

            temperature /= 100f;
            if (temperature <= 66f)
            {
                vector.X = 1f;
                vector.Y = (float)MathHelper.Saturate((double)((0.390081579 * Math.Log((double)temperature)) - 0.631841444));
            }
            else
            {
                float num = temperature - 60f;
                vector.X = (float)MathHelper.Saturate((double)(1.292936186 * Math.Pow((double)num, -0.1332047592)));
                vector.Y = (float)MathHelper.Saturate((double)(1.129890861 * Math.Pow((double)num, -0.0755148492)));
            }
            if (temperature >= 66f)
            {
                vector.Z = 1f;
                return(vector);
            }
            if (temperature <= 19f)
            {
                vector.Z = 0f;
                return(vector);
            }
            vector.Z = (float)MathHelper.Saturate((double)((0.543206789 * Math.Log((double)(temperature - 10f))) - 1.196254089));
            return(vector);
        }
Пример #2
0
        // Reference: http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/
        // Assume temperature to be in range [1000,40000]
        public static Vector3 TemperatureToRGB(float temperature)
        {
            Vector3 ret = new Vector3();

            temperature = temperature / 100;

            if (temperature <= 66)
            {
                ret.X = 1;
                ret.Y = (float)(MathHelper.Saturate(0.390081579 * Math.Log(temperature) - 0.631841444));
            }
            else
            {
                float temp = temperature - 60;
                ret.X = (float)(MathHelper.Saturate(1.292936186 * Math.Pow(temp, -0.1332047592)));
                ret.Y = (float)(MathHelper.Saturate(1.129890861 * Math.Pow(temp, -0.0755148492)));
            }

            if (temperature >= 66)
            {
                ret.Z = 1;
            }
            else if (temperature <= 19)
            {
                ret.Z = 0;
            }
            else
            {
                ret.Z = (float)(MathHelper.Saturate(0.543206789 * Math.Log(temperature - 10) - 1.196254089));
            }

            return(ret);
        }