Добавить комментарий

Delphi

Перевести из HSV в RGB

type 
  TRGB = array [0..2] of byte;
  THSV = record
           H : 0..360;
           S : 0..100;
           V : 0..100;
         end;



function HSVToRGB(hsv: THSV):TRGB;
var
  f, p, q, t: real;
begin
  if hsv.H = 0 then
  begin
    result[0] := round(hsv.V * 2.55);
    result[1] := round(hsv.V * 2.55);
    result[2] := round(hsv.V * 2.55);
  end
    else
  begin
    f := (hsv.H mod 60) / 60;
    p := hsv.V * (1 - hsv.S /100);
    q := hsv.V * (1 - hsv.S /100 * f);
    t := hsv.V * (1 - hsv.S /100 * (1 - f));
    case (hsv.H div 60) of
      0:
        begin
          result[0] := round(hsv.V * 2.55);
          result[1] := round(t * 2.55);
          result[2] := round(p * 2.55);
        end;
      1:
        begin
          result[0] := round(q * 2.55);
          result[1] := round(hsv.V * 2.55);
          result[2] := round(p * 2.55);
        end;
      2:
        begin
          result[0] := round(p * 2.55);
          result[1] := round(hsv.V * 2.55);
          result[2] := round(t * 2.55);
        end;
      3:
        begin
          result[0] := round(p * 2.55);
          result[1] := round(q * 2.55);
          result[2] := round(hsv.V * 2.55);
        end;
      4:
        begin
          result[0] := round(t * 2.55);
          result[1] := round(p * 2.55);
          result[2] := round(hsv.V * 2.55);
        end;
    else
      result[0] := round(hsv.V * 2.55);
      result[1] := round(p * 2.55);
      result[2] := round(q * 2.55);
    end;
  end;
end;

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.
  • Вы можете цитировать другие сообщения, используя тэг [quote]

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.