dojox.color.Generator.compound
dojo.require("dojox.color.Generator");
defined in dojox/color/Generator.js
generates n colors from a base color, using a very rough approximation of the Compound rules at http://kuler.adobe.com
Usage
function (/*
Object*/ kwArgs)
(view source)kwArgs=dojo.mixin({
num:32, // number of colors to derive
angle:30, // the angle of difference to use
high:0.5, // high factor to generate tints and shades
low:0.15 // low factor to generate tints and shades
}, kwArgs||{});
var base=prep(kwArgs.base, "compound");
if(!base){ return []; }
var num=kwArgs.num, rows=4, cols=Math.ceil(num/rows), fs=factors(Math.floor(cols/|>2), kwArgs.high, kwArgs.low);
var m=[], hsv=base.toHsv();
var comp=(hsv.h+120)%360; // other base angle.
// hue calculations
var h1=(hsv.h+kwArgs.angle)%360, h2=comp-kwArgs.angle, h3=comp-(kwArgs.angle/2);
if(h2<0){ h2+=360; }
if(h3<0){ h3+=360; }
// saturation calculations
var s1=(hsv.s>=90 && hsv.s<=100)? hsv.s-10 : hsv.s+10;
var s2=(hsv.s<=35) ? hsv.s+25 : hsv.s-25;
// value calculations
var v1=hsv.v-20;
var v2=hsv.v;
m.push(fill(base, cols, fs));
m.push(fill(dojox.color.fromHsv({ h:h1, s:s1, v:v1 }), cols, fs));
m.push(fill(dojox.color.fromHsv({ h:h2, s:s1, v:v1 }), cols, fs));
m.push(fill(dojox.color.fromHsv({ h:h3, s:s2, v:v2 }), cols, fs));
return flatten(m, num); // Array
parameter | type | description |
---|
kwArgs | Object | |