Advertisement
andreil

Untitled

Mar 28th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.33 KB | None | 0 0
  1. procedure GenerateGradient(c1, c2, c3, c4, c5: TColor; fcolors: Integer);
  2. var
  3.   i, j: integer;
  4.   R, G, B: Longword;
  5.   RGB1, RGB2, RGB3, RGB4, RGB5, RGBdifference: array[0..2] of Longword;
  6.   min, max: Extended;
  7. begin
  8.   min:=Sigma[0][0];
  9.   max:=Sigma[0][0];
  10.   for i:=1 to TrianglesCount-1 do
  11.   begin
  12.     if Sigma[i][0]<min then
  13.       min:=Sigma[i][0];
  14.     if Sigma[i][0]>max then
  15.       max:=Sigma[i][0];
  16.   end;
  17.   MGx:=min;
  18.   Gdx:=Abs(max-min)/fcolors;
  19.  
  20.   min:=Sigma[0][1];
  21.   max:=Sigma[0][1];
  22.   for i:=1 to TrianglesCount-1 do
  23.   begin
  24.     if Sigma[i][1]<min then
  25.       min:=Sigma[i][1];
  26.     if Sigma[i][1]>max then
  27.       max:=Sigma[i][1];
  28.   end;
  29.   MGy:=min;
  30.   Gdy:=Abs(max-min)/fcolors;
  31.  
  32.  
  33.   RGB1[0] := GetRvalue(colortoRGB(c1));
  34.   RGB1[1] := GetGvalue(colortoRGB(c1));
  35.   RGB1[2] := GetBvalue(colortoRGB(c1));
  36.   RGB2[0] := GetRvalue(colortoRGB(c2));
  37.   RGB2[1] := GetGvalue(colortoRGB(c2));
  38.   RGB2[2] := GetBvalue(colortoRGB(c2));
  39.   RGB3[0] := GetRvalue(colortoRGB(c3));
  40.   RGB3[1] := GetGvalue(colortoRGB(c3));
  41.   RGB3[2] := GetBvalue(colortoRGB(c3));
  42.   RGB4[0] := GetRvalue(colortoRGB(c4));
  43.   RGB4[1] := GetGvalue(colortoRGB(c4));
  44.   RGB4[2] := GetBvalue(colortoRGB(c4));
  45.   RGB5[0] := GetRvalue(colortoRGB(c5));
  46.   RGB5[1] := GetGvalue(colortoRGB(c5));
  47.   RGB5[2] := GetBvalue(colortoRGB(c5));
  48.  
  49.   j:=0;
  50.   //1
  51.   RGBdifference[0] := GetRvalue(colortoRGB(c2)) - RGB1[0];
  52.   RGBdifference[1] := GetGvalue(colortoRGB(c2)) - RGB1[1];
  53.   RGBdifference[2] := GetBvalue(colortoRGB(c2)) - RGB1[2];
  54.   for i := fcolors div 4 downto 0 do
  55.   begin
  56.     R := RGB1[0] + muldiv(j, RGBDifference[0], fcolors);
  57.     G := RGB1[1] + muldiv(j, RGBDifference[1], fcolors);
  58.     B := RGB1[2] + muldiv(j, RGBDifference[2], fcolors);
  59.     Gradient[j][0]:=R/255;
  60.     Gradient[j][1]:=G/255;
  61.     Gradient[j][2]:=B/255;
  62.     Inc(j);
  63.   end;
  64.  
  65.   //2
  66.   RGBdifference[0] := GetRvalue(colortoRGB(c3)) - RGB2[0];
  67.   RGBdifference[1] := GetGvalue(colortoRGB(c3)) - RGB2[1];
  68.   RGBdifference[2] := GetBvalue(colortoRGB(c3)) - RGB2[2];
  69.   for i := fcolors div 4 downto 0 do
  70.   begin
  71.     R := RGB2[0] + muldiv(j, RGBDifference[0], fcolors);
  72.     G := RGB2[1] + muldiv(j, RGBDifference[1], fcolors);
  73.     B := RGB2[2] + muldiv(j, RGBDifference[2], fcolors);
  74.     Gradient[j][0]:=R/255;
  75.     Gradient[j][1]:=G/255;
  76.     Gradient[j][2]:=B/255;
  77.     Inc(j);
  78.   end;
  79.  
  80.   //3
  81.   RGBdifference[0] := GetRvalue(colortoRGB(c4)) - RGB3[0];
  82.   RGBdifference[1] := GetGvalue(colortoRGB(c4)) - RGB3[1];
  83.   RGBdifference[2] := GetBvalue(colortoRGB(c4)) - RGB3[2];
  84.   for i := fcolors div 4 downto 0 do
  85.   begin
  86.     R := RGB3[0] + muldiv(j, RGBDifference[0], fcolors);
  87.     G := RGB3[1] + muldiv(j, RGBDifference[1], fcolors);
  88.     B := RGB3[2] + muldiv(j, RGBDifference[2], fcolors);
  89.     Gradient[j][0]:=R/255;
  90.     Gradient[j][1]:=G/255;
  91.     Gradient[j][2]:=B/255;
  92.     Inc(j);
  93.   end;
  94.  
  95.   //4
  96.   RGBdifference[0] := GetRvalue(colortoRGB(c5)) - RGB4[0];
  97.   RGBdifference[1] := GetGvalue(colortoRGB(c5)) - RGB4[1];
  98.   RGBdifference[2] := GetBvalue(colortoRGB(c5)) - RGB4[2];
  99.   for i := fcolors div 4 downto 0 do
  100.   begin
  101.     R := RGB4[0] + muldiv(j, RGBDifference[0], fcolors);
  102.     G := RGB4[1] + muldiv(j, RGBDifference[1], fcolors);
  103.     B := RGB4[2] + muldiv(j, RGBDifference[2], fcolors);
  104.     Gradient[j][0]:=R/255;
  105.     Gradient[j][1]:=G/255;
  106.     Gradient[j][2]:=B/255;
  107.     Inc(j);
  108.   end;
  109.  
  110. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement