国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

C語言HSL轉RGB程序

[復制鏈接]
樓主
Jonsa 發表于 2021-11-15 17:09:02 | 只看該作者 |倒序瀏覽 |閱讀模式
這樣的程序,隨機輸入一些,得出的結果都是b的值。r,g兩個的值都是b的值。輸入范圍是正常的HSL數值范圍。
  1. float hue2rgb(float p,float q,float t){
  2.             
  3.             if(t < 1/6)
  4.             {
  5.              return p + (q - p) * 6 * t;           
  6.             }
  7.             if(1/6<=t&&t < 1/2)
  8.             {
  9.             return q;
  10.             }
  11.             if(1/2<=t&&t < 2/3) {
  12.             return p + (q - p) * (2/3 - t) * 6;
  13.             }
  14.              return p;
  15.         }
  16. float hslToRgb(float h, float s, float l){
  17.     float  q,p;
  18.     float  r,g,b;
  19.     h=h/360;
  20.     s=s/100;
  21.     l=l/100;
  22.     if(s == 0){
  23.         r = g = b = l; // achromatic
  24.     }else{
  25.         if(l<0.5){
  26.         q=l * (1 + s);
  27.         }else{
  28.        q=l + s - l * s;
  29.         }
  30.           if(h < 0) h=h+ 1;
  31.           if(h > 1) h=h- 1;
  32.         
  33.          p = 2 * l - q;
  34.         r = 255*hue2rgb(p, q, h+1/3);
  35.         g =255* hue2rgb(p, q, h);
  36.         b =255* hue2rgb(p, q, h-1/3);
  37.     }

  38.     return  b;
  39. }
復制代碼


您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

手機版|小黑屋|ELEOK |網站地圖

GMT+8, 2026-5-26 01:08

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表