-
Notifications
You must be signed in to change notification settings - Fork 0
/
gradient.m
executable file
·39 lines (37 loc) · 1.23 KB
/
gradient.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
% Copyright 2008--2010 Bruno Girin, [email protected]
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program. If not, see <http://www.gnu.org/licenses/>.
%
% gradient function
% Generate a linear gradient from colour c1 to colour c2 with
% n colours in total
% Each colour should be specified as a triplet of numbers between
% 0 and 1 as in this example:
% gradient([0,0.8,1],[1,1,1],16)
%
function g=gradient(c1, c2, n)
g=[];
% extend both colour matrices with zeros so that
% they have the same length
m=max(length(c1),length(c2));
c1(length(c1)+1:m)=0;
c2(length(c2)+1:m)=0;
% create a gradient for each colour component
for s=1:m;
g=cat(2,
g,
linspace(c1(s),c2(s),n)'
);
endfor
endfunction