CS计算机代考程序代写 // This file contains code to produce both the rainbow color scale and the heated-object color scale.

// This file contains code to produce both the rainbow color scale and the heated-object color scale.
// It returns an RGB color in a vec3.
// Pass in a variable called “t” where t=0. will give you back the color at the bottom of the scale
// and t=1. will give you back the color at the top of the scale.

vec3
Rainbow( float t )
{
t = clamp( t, 0., 1. );

vec3 rgb;

// b -> c
rgb.r = 0.;
rgb.g = 4. * ( t – (0./4.) );
rgb.b = 1.;

// c -> g
if( t >= (1./4.) )
{
rgb.r = 0.;
rgb.g = 1.;
rgb.b = 1. – 4. * ( t – (1./4.) );
}

// g -> y
if( t >= (2./4.) )
{
rgb.r = 4. * ( t – (2./4.) );
rgb.g = 1.;
rgb.b = 0.;
}

// y -> r
if( t >= (3./4.) )
{
rgb.r = 1.;
rgb.g = 1. – 4. * ( t – (3./4.) );
rgb.b = 0.;
}

return rgb;
}

vec3
HeatedObject( float t )
{
t = clamp( t, 0., 1. );

vec3 rgb;
rgb.r = 3. * ( t – (0./6.) );
rgb.g = 0.;
rgb.b = 0.;

if( t >= (1./3.) )
{
rgb.r = 1.;
rgb.g = 3. * ( t – (1./3.) );
}

if( t >= (2./3.) )
{
rgb.g = 1.;
rgb.b = 3. * ( t – (2./3.) );
}

return rgb;
}