Questione : Riempire un allineamento di sequenza regolare dei colori

Hi
che desidero popolare gli elementi di un allineamento (della lunghezza arbitraria) con una progressione regolare dei valori di colore. Using “BlendColors„ posso trovare un colore intermedio fra i due valori. Che cosa gradirei sono una procedura accurata per riempire ciascuno di questi valori intermedi in un array.
e.g. per un allineamento del valore del n
the di lunghezza alla divisione 2 (chiamata di indice n esso Vi) sono BlendColors (colore [0], colore [n]…)il valore del
the del
then alla divisione 2 di indice [divisione 2 di n] è il risultato BlendColors (colore [0], Vi…)class= " lineNumbers " >
1 del >
etc.

 funzione BlendColors (Color1, Color2: TColor; Opacità: Byte): TColor;
varietà
  r, g, b: Byte;
  c1, c2: PByteArray;
cominciare
  Color1: = ColorToRGB (Color1);
  Color2: = ColorToRGB (Color2);
  c1: = @Color1;
  c2: = @Color2;

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

  Risultato: = RGB (r, g, b);
estremità; class= > " libero " di 
class= del

Risposta : Riempire un allineamento di sequenza regolare dei colori

C1 presupponente [0] =20 ed il c2 [0] =250, Nrow=8 e Ncol=5, la tabella per colore rosso calcolato dal codice di cui sopra saranno il RISULTATO 1 qui sotto.
Così, il primo colore c1 [0] =20 comparirà in cel (1.1) e nel c2 [0] in cel (8.5). Naturalmente, Nrow può essere uguale a Ncol. Notare prego la prima colonna e la prima fila ha lo stesso valore ripetuto.  

Se è richiesto una variazione lineare nella prima fila e colonna, quindi il fattore dovrebbe essere:
      fattore = ((row-1) + (col-1))/(galleggiante) ((Nrow-1) + (Ncol-1));
Quel senso, la tabella di risultato, per gli stessi parametri di prima, sarà come nel RISULTATO 2 qui sotto.

Jose

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
RISULTATO 1 per la componente rossa
----------------------------------------------
        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 
----------------------------------------------
RISULTATO 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  
Altre soluzioni  
 
programming4us programming4us