123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- if (!dojo._hasResource["dojox.charting._color"]) { // _hasResource checks added
- // by build. Do not use
- // _hasResource directly in
- // your code.
- dojo._hasResource["dojox.charting._color"] = true;
- dojo.provide("dojox.charting._color");
- dojox.charting._color = {};
- dojox.charting._color.fromHsb = function(/* int */hue, /* int */
- saturation, /* int */brightness) {
- // summary
- // Creates an instance of dojo.Color based on HSB input (360, %, %)
- hue = Math.round(hue);
- saturation = Math.round((saturation / 100) * 255);
- brightness = Math.round((brightness / 100) * 255);
- var r, g, b;
- if (saturation == 0) {
- r = g = b = brightness;
- } else {
- var tint1 = brightness, tint2 = (255 - saturation) * brightness
- / 255, tint3 = (tint1 - tint2) * (hue % 60) / 60;
- if (hue < 60) {
- r = tint1, g = tint2 + tint3, b = tint2;
- } else if (hue < 120) {
- r = tint1 - tint3, g = tint1, b = tint2;
- } else if (hue < 180) {
- r = tint2, g = tint1, b = tint2 + tint3;
- } else if (hue < 240) {
- r = tint2, g = tint1 - tint3, b = tint1;
- } else if (hue < 300) {
- r = tint2 + tint3, g = tint2, b = tint1;
- } else if (hue < 360) {
- r = tint1, g = tint2, b = tint1 - tint3;
- }
- }
- r = Math.round(r);
- g = Math.round(g);
- b = Math.round(b);
- return new dojo.Color({
- r : r,
- g : g,
- b : b
- });
- };
- dojox.charting._color.toHsb = function(/* int|Object|dojo.Color */red, /* int? */
- green, /* int? */blue) {
- // summary
- // Returns the color in HSB representation (360, %, %)
- var r = red, g = green, b = blue;
- if (dojo.isObject(red)) {
- r = red.r, g = red.g, b = red.b;
- }
- var min = Math.min(r, g, b);
- var max = Math.max(r, g, b);
- var delta = max - min;
- var hue = 0, saturation = (max != 0 ? delta / max : 0), brightness = max
- / 255;
- if (saturation == 0) {
- hue = 0;
- } else {
- if (r == max) {
- hue = ((max - b) / delta) - ((max - g) / delta);
- } else if (g == max) {
- hue = 2 + (((max - r) / delta) - ((max - b) / delta));
- } else {
- hue = 4 + (((max - g) / delta) - ((max - r) / delta));
- }
- hue /= 6;
- if (hue < 0)
- hue++;
- }
- hue = Math.round(hue * 360);
- saturation = Math.round(saturation * 100);
- brightness = Math.round(brightness * 100);
- return {
- h : hue,
- s : saturation,
- b : brightness,
- hue : hue,
- saturation : saturation,
- brightness : brightness
- }; // Object
- };
- }
|