The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 795 - File: showthread.php PHP 7.4.33 (FreeBSD)
File Line Function
/showthread.php 795 errorHandler->error





Post Reply 
HSV "Color Space Function"
05-22-2024, 02:07 AM (This post was last modified: 11-08-2024 02:45 PM by Insoft.)
Post: #1
HSV "Color Space Function"
HSV Color Space Function
HSV. The HSV (Hue, Saturation, Value) color space corresponds better to how people experience color than the RGB color space does. For example, this color space is often used by people who are selecting colors, such as paint or ink color, from a color wheel or palette.

PPL
Code:
EXPORT HSV(h,s,v)
BEGIN
h MOD 360/60▶h;
MIN(MAX(s,0),100)/100▶s;
MIN(MAX(v,0),100)/100▶v;
LOCAL f,p,q,t,m;
h-FLOOR(h)▶f;
v*(1-s)▶p;
v*(1-s*f)▶q;
v*(1-s*(1-f))▶t;
LOCAL r,g,b;
FLOOR(h)▶m;
IF m=0 THEN v▶r;t▶g;p▶b;END;
IF m=1 THEN q▶r;v▶g;p▶b;END;
IF m=2 THEN p▶r;v▶g;t▶b;END;
IF m=3 THEN p▶r;q▶g;v▶b;END;
IF m=4 THEN t▶r;p▶g;v▶b;END;
IF m=5 THEN v▶r;p▶g;q▶b;END;
RETURN RGB(r*255,g*255,b*255);
END;

P+ Source Code
Code:
#include <prime>

export HSV(h:hue, s:saturation, v:value)
begin
    hue = hue % 360 / 60;
    saturation = MIN(MAX(saturation, 0), 100) / 100;
    value = MIN(MAX(value, 0), 100) / 100;
    
    var f, p, q, t, m;
    f = hue - math::floor(h);
    p = value * (1 - saturation);
    q = value * (1 - saturation * f);
    t = value * (1 - saturation * (1 - f));

    var r:red, g:green, b:blue;
    m = math::floor(h);
    
    if m==0 then red = value; green = t; blue = p; end;
    if m==1 then red = q; green = value; blue = p; end;
    if m==2 then red = p; green = value; blue = t; end;
    if m==3 then red = p; green = q; blue = value; end;
    if m==4 then red = t; green = p; blue = value; end;
    if m==5 then red = value; green = p; blue = q; end;
  
    return RGB(red * 255, green * 255, blue * 255);
end;

P+
GitHub
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
HSV "Color Space Function" - Insoft - 05-22-2024 02:07 AM



User(s) browsing this thread: 1 Guest(s)