Pergunta : Encher uma disposição com a seqüência lisa das cores

Hi
que eu desejo povoar os elementos de uma disposição (de comprimento arbitrário) com uma progressão lisa de valores da cor. Using “BlendColors” eu posso encontrar uma cor intermediária entre dois valores. O que eu gostaria sou um algoritmo puro para encher cada um destes valores intermediários em um array.
e.g. para uma disposição de valor do n
the do comprimento no índice n div 2 (chamada ele Vi) sou BlendColors (cor [0], a cor [n]…)o valor do
the do
then no índice [n div 2] div 2 é o resultado BlendColors (cor [0], Vi…)class= " lineNumbers " >
1 do >
etc.

 função BlendColors (Color1, Color2: TColor; Opacidade: Byte): TColor;
var
  r, g, b: Byte;
  c1, c2: PByteArray;
começar
  Color1: = ColorToRGB (Color1);
  Color2: = ColorToRGB (Color2);
  c1: = @Color1;
  c2: = @Color2;

  r: = Trunc (c1 [0] + (c2 [0] - c1 [0]) * opacidade/256);
  g: = Trunc (c1 [1] + (c2 [1] - c1 [1]) * opacidade/256);
  b: = Trunc (c1 [2] + (c2 [2] - c1 [2]) * opacidade/256);

  Resultado: = RGB (r, g, b);
extremidade; class= > " desobstruído " de 
class= do

Resposta : Encher uma disposição com a seqüência lisa das cores

C1 de suposição [0] =20 e o c2 [0] =250, Nrow=8 e Ncol=5, a matriz para o vermelho calculado pelo código acima serão o RESULTADO 1 abaixo.
Assim, a primeira cor c1 [0] =20 aparecerá em cel (1.1) e no c2 [0] em cel (8.5). Naturalmente, Nrow pode ser igual a Ncol. Anotar por favor a primeira coluna e a primeira fileira tem o mesmo valor repetido.  

Se se exige uma variação linear na primeira fileira e coluna, a seguir o fator deve ser:
      fator = ((row-1) + (col-1))/(flutuador) ((Nrow-1) + (Ncol-1));
Essa maneira, a matriz do resultado, para os mesmos parâmetros que antes, estará como no RESULTADO 2 abaixo.

Jose

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
RESULTADO 1 para o componente vermelho
----------------------------------------------
        20      20      20      20      20
        20      28      36      44      52
        20      36      52      69      85
        20      44      69      93      118
        20      52      85      118     151
        20      61      102     143     184
        20      69      118     167     217
        20      77      135     192     250 
----------------------------------------------
RESULTADO 2
        20      40      61      82      103
        40      61      82      103     124
        61      82      103     124     145
        82      103     124     145     166
        103     124     145     166     187
        124     145     166     187     208
        145     166     187     208     229
        166     187     208     229     250  
Outras soluções  
 
programming4us programming4us