Page 120 - Computational Colour Science Using MATLAB
P. 120
IMPLEMENTATIONS AND EXAMPLES 107
% step 8
ehH = [ 20.14 90.00 164.25 237.53 380.14
0.8 0.7 1.0 1.2 0.8
0.0 100.0 200.0 300.0 400.0 ];
hh = h;
if h5ehH(1,1)
hh = 360+ehH(1,1);
end
for k = 1:4
if hh 5ehH(1,k+1)
i=k;
break;
end
end
e = ehH(2,i)+(ehH(2,i+1)-ehH(2,i))*(hh-ehH(1,i))/
(ehH(1,i+1)-ehH(1,i));
hq=ehH(3,i)+100.0*( (hh-ehH(1,i))/ehH(2,i) )/
( (hh-ehH(1,i))/ehH(2,i) + (ehH(1,i+1)-hh)/ehH(2,i+1) );
k = floor(hq/100);
Hp = floor(100.0*(hq/100-k)+0.5);
if k == 0
Hc(1).Colour = ’Yellow’;
Hc(2).Colour = ’Red’;
end
if k == 1
Hc(1).Colour = ’Green’;
Hc(2).Colour = ’Yellow’;
end
if k == 2
Hc(1).Colour = ’Blue’;
Hc(2).Colour = ’Green’;
end
if k == 3
Hc(1).Colour = ’Red’;
Hc(2).Colour = ’Blue’;
end
Hc(1).Portion = Hp;
Hc(2).Portion = 100-Hp;
cd = sprintf(’%2.2f %s %2.2f %s’,Hc(1).Portion, Hc(1).
Colour, Hc(2).Portion, Hc(2).Colour);