]> git.pond.sub.org Git - eow/blob - static/dojo-release-1.1.1/dojox/charting/_color.js
Comment class stub
[eow] / static / dojo-release-1.1.1 / dojox / charting / _color.js
1 if(!dojo._hasResource["dojox.charting._color"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
2 dojo._hasResource["dojox.charting._color"] = true;
3 dojo.provide("dojox.charting._color");
4
5 dojox.charting._color={};
6 dojox.charting._color.fromHsb=function(/* int */hue, /* int */saturation, /* int */brightness){
7         //      summary
8         //      Creates an instance of dojo.Color based on HSB input (360, %, %)
9         hue=Math.round(hue);
10         saturation=Math.round((saturation/100)*255); 
11         brightness=Math.round((brightness/100)*255);
12
13         var r, g, b;
14         if(saturation==0){
15                 r=g=b=brightness;
16         } else {
17                 var tint1=brightness, 
18                         tint2=(255-saturation)*brightness/255, 
19                         tint3=(tint1-tint2)*(hue%60)/60;
20                 if(hue<60){ r=tint1, g=tint2+tint3, b=tint2; }
21                 else if(hue<120){ r=tint1-tint3, g=tint1, b=tint2; }
22                 else if(hue<180){ r=tint2, g=tint1, b=tint2+tint3; }
23                 else if(hue<240){ r=tint2, g=tint1-tint3, b=tint1; }
24                 else if(hue<300){ r=tint2+tint3, g=tint2, b=tint1; }
25                 else if(hue<360){ r=tint1, g=tint2, b=tint1-tint3; }
26         }
27
28         r=Math.round(r); g=Math.round(g); b=Math.round(b);
29         return new dojo.Color({ r:r, g:g, b:b });
30 };
31
32 dojox.charting._color.toHsb=function(/* int|Object|dojo.Color */ red, /* int? */ green, /* int? */blue){
33         //      summary
34         //      Returns the color in HSB representation (360, %, %)
35         var r=red,g=green,b=blue;
36         if(dojo.isObject(red)){
37                 r=red.r,g=red.g,b=red.b;
38         }
39         var min=Math.min(r,g,b);
40         var max=Math.max(r,g,b);
41         var delta=max-min;
42
43         var hue=0, saturation=(max!=0?delta/max:0), brightness=max/255;
44         if(saturation==0){ hue=0; }
45         else {
46                 if(r==max){ hue=((max-b)/delta)-((max-g)/delta); }
47                 else if(g==max){ hue=2+(((max-r)/delta)-((max-b)/delta)); }
48                 else { hue=4+(((max-g)/delta)-((max-r)/delta)); }
49                 hue/=6;
50                 if(hue<0) hue++;
51         }
52         
53         hue=Math.round(hue*360);
54         saturation=Math.round(saturation*100);
55         brightness=Math.round(brightness*100);
56         return { 
57                 h:hue, s:saturation, b:brightness,
58                 hue:hue, saturation:saturation, brightness:brightness
59         };      //      Object
60 };
61
62 }