栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JS函数计算补色?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JS函数计算补色?

// Complement        temprgb={ r: 0, g: 0xff, b: 0xff }; // Cyan        temphsv=RGB2HSV(temprgb);        temphsv.hue=HueShift(temphsv.hue,180.0);        temprgb=HSV2RGB(temphsv);        console.log(temprgb); // Complement is red (0xff, 0, 0)        function RGB2HSV(rgb) { hsv = new Object(); max=max3(rgb.r,rgb.g,rgb.b); dif=max-min3(rgb.r,rgb.g,rgb.b); hsv.saturation=(max==0.0)?0:(100*dif/max); if (hsv.saturation==0) hsv.hue=0; else if (rgb.r==max) hsv.hue=60.0*(rgb.g-rgb.b)/dif; else if (rgb.g==max) hsv.hue=120.0+60.0*(rgb.b-rgb.r)/dif; else if (rgb.b==max) hsv.hue=240.0+60.0*(rgb.r-rgb.g)/dif; if (hsv.hue<0.0) hsv.hue+=360.0; hsv.value=Math.round(max*100/255); hsv.hue=Math.round(hsv.hue); hsv.saturation=Math.round(hsv.saturation); return hsv;        }        // RGB2HSV and HSV2RGB are based on Color Match Remix [http://color.twysted.net/]        // which is based on or copied from ColorMatch 5K [http://colormatch.dk/]        function HSV2RGB(hsv) { var rgb=new Object(); if (hsv.saturation==0) {     rgb.r=rgb.g=rgb.b=Math.round(hsv.value*2.55); } else {     hsv.hue/=60;     hsv.saturation/=100;     hsv.value/=100;     i=Math.floor(hsv.hue);     f=hsv.hue-i;     p=hsv.value*(1-hsv.saturation);     q=hsv.value*(1-hsv.saturation*f);     t=hsv.value*(1-hsv.saturation*(1-f));     switch(i) {     case 0: rgb.r=hsv.value; rgb.g=t; rgb.b=p; break;     case 1: rgb.r=q; rgb.g=hsv.value; rgb.b=p; break;     case 2: rgb.r=p; rgb.g=hsv.value; rgb.b=t; break;     case 3: rgb.r=p; rgb.g=q; rgb.b=hsv.value; break;     case 4: rgb.r=t; rgb.g=p; rgb.b=hsv.value; break;     default: rgb.r=hsv.value; rgb.g=p; rgb.b=q;     }     rgb.r=Math.round(rgb.r*255);     rgb.g=Math.round(rgb.g*255);     rgb.b=Math.round(rgb.b*255); } return rgb;        }        //Adding HueShift via Jacob (see comments)        function HueShift(h,s) {  h+=s; while (h>=360.0) h-=360.0; while (h<0.0) h+=360.0; return h;         }        //min max via Hairgami_Master (see comments)        function min3(a,b,c) {  return (a<b)?((a<c)?a:c):((b<c)?b:c);         }         function max3(a,b,c) {  return (a>b)?((a>c)?a:c):((b>c)?b:c);         }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420710.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号