var pos : int := 0
var colorTable : array 1 .. 255, 1 .. 3 of real
for i : 1 .. 255
RGB.GetColor (i, colorTable (i, 1), colorTable (i, 2), colorTable (i, 3))
end for
proc AddGradient (c1, c2, n : int)
var clr : int
var r1, g1, b1, r2, g2, b2, p, p0 : real
r1 := colorTable (c1, 1)
g1 := colorTable (c1, 2)
b1 := colorTable (c1, 3)
r2 := colorTable (c2, 1)
g2 := colorTable (c2, 2)
b2 := colorTable (c2, 3)
const a := 50
for i : 1 .. n
p := (i / n) * 100
p0 := 100 - p
RGB.SetColor (pos, (((r1 * p) + (r2 * p0)) / 2) / a, (((g1 * p) + (g2 * p0)) / 2) / a, (((b1 * p) + (b2 * p0)) / 2) / a)
pos += 1
end for
end AddGradient |