Fråga : Fyll en samling med slätar ordnar av färgar

Hi
som jag önskar att befolka beståndsdelarna av en samling (av den godtyckliga längden) med en slätafortgång av, färgar värderar. Using ”BlendColors” jag kan finna en nöjesgata färgar mellan två värderar. (Färga [0] vad jag skulle något liknande är en proper algoritm som fyller varje av dessa intermediaten, värderar i en given array.
e.g. för en samling av längdn
the värderar på index n div 2 (appell det Vi) är BlendColors, färga [n]…),
the för
then värderar på index [n div 2] div 2 är resultatet BlendColors (färga [0], Vi…),för class=" codeSnippet " för
etc.

1 för >
 fungerar BlendColors (Color1, Color2: TColor; Ogenomskinlighet: Byte): TColor;
var
  r G, b: Byte;
  c1 c2: PByteArray;
börja
  Color1: = ColorToRGB (Color1);
  Color2: = ColorToRGB (Color2);
  c1: = @Color1;
  c2: = @Color2;

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

  Resultat: = RGB (r, G, b);
avsluta; <-/pre>
" klar "

Svar : Fyll en samling med slätar ordnar av färgar

Antagande c1 [0] =20 och c2 [0] =250, Nrow=8 och Ncol=5, matrisen för rött som beräknas av det ovannämnt, kodifierar ska är det nedanföra RESULTATET 1.
Färga först ska c1 [0] =20 syns i cel (1.1) och c2 [0] i cel (8.5), så. Naturligtvis Nrow kan vara jämbördig till Ncol. Behaga noterar första kolonn och ror först har samma att upprepas för att värdera.  

Om det krävs en linjär variation i första ror och, kolonn, då dela upp i faktorer bör vara:
      dela upp i faktorer = ((row-1) + (col-1))/(flöte) ((Nrow-1) + (Ncol-1));
Ditåt resultatmatrisen, för de samma parametrarna som innan, ska är som i nedanfört RESULTAT 2.

Jose

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
RESULTAT 1 för det röda del-
----------------------------------------------
        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 
----------------------------------------------
RESULTAT 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  
Andra lösningar  
 
programming4us programming4us