Cuestión : Llenar un arsenal de la secuencia lisa de colores

Hi
que deseo poblar los elementos de un arsenal (de la longitud arbitraria) con una progresión lisa de los valores del color. Usar “BlendColors” puedo encontrar un color situado a mitad del camino entre dos valores. Qué quisiera soy un algoritmo aseado para llenar cada uno de estos valores intermedios en un array.
e.g. para un arsenal de valor del n
the de la longitud en el índice n div 2 (llamada él VI) soy BlendColors (color [0], el color [n]…)el valor del
the del
then en el índice [n div 2] div 2 es el resultado BlendColors (color [0], VI…)class= " lineNumbers " >
1 del >
etc.

 función BlendColors (Color1, Color2: TColor; Opacidad: Octeto): TColor;
var
  r, g, b: Octeto;
  c1, c2: PByteArray;
comenzar
  Color1: = ColorToRGB (Color1);
  Color2: = ColorToRGB (Color2);
  c1: = @Color1;
  c2: = @Color2;

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

  Resultado: = RGB (r, g, b);
extremo; class= > " claro " de 
class= del

Respuesta : Llenar un arsenal de la secuencia lisa de colores

C1 presuntuoso [0] =20 y el c2 [0] =250, Nrow=8 y Ncol=5, la matriz para el rojo calculado por el código antedicho serán el RESULTADO 1 abajo.
Así pues, el primer color c1 [0] =20 aparecerá en cel (1.1) y c2 [0] en cel (8.5). Por supuesto, Nrow puede ser igual a Ncol. Observar por favor la primera columna y la primera fila tiene el mismo valor repetido.  

Si se requiere una variación linear en la primera fila y columna, después el factor debe ser:
      factor = ((row-1) + (col-1))/(flotador) ((Nrow-1) + (Ncol-1));
Esa manera, la matriz del resultado, para los mismos parámetros que antes, estará como en el RESULTADO 2 abajo.

Jose

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
RESULTADO 1 para el componente rojo
----------------------------------------------
        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  
Otras soluciones  
 
programming4us programming4us