procedure HSV_To_RGB(var r,g,b:real; h,s,v:real);

  begin
    if s = 0 then
       if h = UNDEFINED then
          begin
            r:=v;
            g:=v;
            b:=v
          end
       else ERROR
    else
       begin
          if h = 360 then
             h:=0;
          h:=h/360;
          i:=Floor(h)        { Floor(h) vrne najvecje celo stevilo }
          f:=h-i;            { ki je manjse ali enako h }
          p:=v*(1-s);
          q:=v*(1-(s*f));
          t:=v*(1-(s*(1-f)))
          case i of
             0 : (r,g,b):=(v,t,p);
             1 : (r,g,b):=(q,v,p);
             2 : (r,g,b):=(p,v,t);
             3 : (r,g,b):=(p,q,v);
             4 : (r,g,b):=(t,p,v);
             5 : (r,g,b):=(v,p,q)
          end
       end
  end