Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure GenerateGradient(c1, c2, c3, c4, c5: TColor; fcolors: Integer);
- var
- i, j: integer;
- R, G, B: Longword;
- RGB1, RGB2, RGB3, RGB4, RGB5, RGBdifference: array[0..2] of Longword;
- min, max: Extended;
- begin
- min:=Sigma[0][0];
- max:=Sigma[0][0];
- for i:=1 to TrianglesCount-1 do
- begin
- if Sigma[i][0]<min then
- min:=Sigma[i][0];
- if Sigma[i][0]>max then
- max:=Sigma[i][0];
- end;
- MGx:=min;
- Gdx:=Abs(max-min)/fcolors;
- min:=Sigma[0][1];
- max:=Sigma[0][1];
- for i:=1 to TrianglesCount-1 do
- begin
- if Sigma[i][1]<min then
- min:=Sigma[i][1];
- if Sigma[i][1]>max then
- max:=Sigma[i][1];
- end;
- MGy:=min;
- Gdy:=Abs(max-min)/fcolors;
- RGB1[0] := GetRvalue(colortoRGB(c1));
- RGB1[1] := GetGvalue(colortoRGB(c1));
- RGB1[2] := GetBvalue(colortoRGB(c1));
- RGB2[0] := GetRvalue(colortoRGB(c2));
- RGB2[1] := GetGvalue(colortoRGB(c2));
- RGB2[2] := GetBvalue(colortoRGB(c2));
- RGB3[0] := GetRvalue(colortoRGB(c3));
- RGB3[1] := GetGvalue(colortoRGB(c3));
- RGB3[2] := GetBvalue(colortoRGB(c3));
- RGB4[0] := GetRvalue(colortoRGB(c4));
- RGB4[1] := GetGvalue(colortoRGB(c4));
- RGB4[2] := GetBvalue(colortoRGB(c4));
- RGB5[0] := GetRvalue(colortoRGB(c5));
- RGB5[1] := GetGvalue(colortoRGB(c5));
- RGB5[2] := GetBvalue(colortoRGB(c5));
- j:=0;
- //1
- RGBdifference[0] := GetRvalue(colortoRGB(c2)) - RGB1[0];
- RGBdifference[1] := GetGvalue(colortoRGB(c2)) - RGB1[1];
- RGBdifference[2] := GetBvalue(colortoRGB(c2)) - RGB1[2];
- for i := fcolors div 4 downto 0 do
- begin
- R := RGB1[0] + muldiv(j, RGBDifference[0], fcolors);
- G := RGB1[1] + muldiv(j, RGBDifference[1], fcolors);
- B := RGB1[2] + muldiv(j, RGBDifference[2], fcolors);
- Gradient[j][0]:=R/255;
- Gradient[j][1]:=G/255;
- Gradient[j][2]:=B/255;
- Inc(j);
- end;
- //2
- RGBdifference[0] := GetRvalue(colortoRGB(c3)) - RGB2[0];
- RGBdifference[1] := GetGvalue(colortoRGB(c3)) - RGB2[1];
- RGBdifference[2] := GetBvalue(colortoRGB(c3)) - RGB2[2];
- for i := fcolors div 4 downto 0 do
- begin
- R := RGB2[0] + muldiv(j, RGBDifference[0], fcolors);
- G := RGB2[1] + muldiv(j, RGBDifference[1], fcolors);
- B := RGB2[2] + muldiv(j, RGBDifference[2], fcolors);
- Gradient[j][0]:=R/255;
- Gradient[j][1]:=G/255;
- Gradient[j][2]:=B/255;
- Inc(j);
- end;
- //3
- RGBdifference[0] := GetRvalue(colortoRGB(c4)) - RGB3[0];
- RGBdifference[1] := GetGvalue(colortoRGB(c4)) - RGB3[1];
- RGBdifference[2] := GetBvalue(colortoRGB(c4)) - RGB3[2];
- for i := fcolors div 4 downto 0 do
- begin
- R := RGB3[0] + muldiv(j, RGBDifference[0], fcolors);
- G := RGB3[1] + muldiv(j, RGBDifference[1], fcolors);
- B := RGB3[2] + muldiv(j, RGBDifference[2], fcolors);
- Gradient[j][0]:=R/255;
- Gradient[j][1]:=G/255;
- Gradient[j][2]:=B/255;
- Inc(j);
- end;
- //4
- RGBdifference[0] := GetRvalue(colortoRGB(c5)) - RGB4[0];
- RGBdifference[1] := GetGvalue(colortoRGB(c5)) - RGB4[1];
- RGBdifference[2] := GetBvalue(colortoRGB(c5)) - RGB4[2];
- for i := fcolors div 4 downto 0 do
- begin
- R := RGB4[0] + muldiv(j, RGBDifference[0], fcolors);
- G := RGB4[1] + muldiv(j, RGBDifference[1], fcolors);
- B := RGB4[2] + muldiv(j, RGBDifference[2], fcolors);
- Gradient[j][0]:=R/255;
- Gradient[j][1]:=G/255;
- Gradient[j][2]:=B/255;
- Inc(j);
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement