Pytanie : Wypełniać szyk z gładki sekwencja colours

Hi
I życzyć the element szyk (arbitralny długość) z gładki progresja colour wartość. Using "BlendColors" I móc wartość colour między dwa wartość. Co i polubić być staranny algorytm each te średni wartość w dawać array.
e.g dla szyk długość n
the wartość przy wskaźnik n div 2 (Wezwanie ono Vi) być BlendColors (colour [(0)], kolor [n]…)
then
the wartość przy wskaźnik [n div 2] div 2 być the rezultat BlendColors (colour [(0)], Vi…)
etc.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
 funkcja BlendColors (Color1, Color2: TColor; Nieprzezroczystość: Bajt): TColor;
var
  r, g, B: Bajt;
  c1, c2: PByteArray;
zaczynać
  Color1: = ColorToRGB (Color1);
  Color2: = ColorToRGB (Color2);
  c1: = @Color1;
  c2: = @Color2;

  r: = Trunc (c1 [(0)] + (c2 [(0)] - c1 [(0)]) * Nieprzezroczystość/256);
  g: = Trunc (c1 [(1)] + (c2 [(1)] - c1 [(1)]) * Nieprzezroczystość/256);
  B: = Trunc (c1 [2] + (c2 [2] - c1 [2]) * Nieprzezroczystość/256);

  Rezultat: = RGB (r, g, B);
końcówka; 

Odpowiedź : Wypełniać szyk z gładki sekwencja colours

C1 [(0)] =20 i c2 [(0)] =250, Nrow=8 i Ncol=5, the matryca dla czerwień kalkulować the kalkulować kod być the REZULTAT (1) (1).
W Ten Sposób, pierwszy kolor c1 [(0)] =20 pojawiać się w cel (1,1) i c2 [(0)] w cel (8,5). Oczywiście, Nrow móc równy Ncol. Zadawalać notatka pierwszy col i pierwszy rząd mieć the ten sam częstotliwy wartość.  

Jeżeli ono wymagać liniowy różnica w the pierwszy rząd i col, then czynnik musieć:
      czynnik = ((row-1) + (col-1))/(pławik) ((Nrow-1) + (Ncol-1));
Ten sposób, the rezultat matryca, dla the ten sam parametr przed, być w REZULTAT 2 2.

Jose

(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
REZULTAT (1) dla the czerwony składnik
----------------------------------------------
        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 
----------------------------------------------
REZULTAT 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  
Inne rozwiązania  
 
programming4us programming4us