2017-12-21 28 views
-1

이것은 매우 어리석은 질문 일지 모르지만 내 문제를 명확히하고 싶습니다. RGB & HSL 사이의 변환을위한 몇 가지 알고리즘을 보았습니다. var_1과 var_2를 보았습니다. 이 변수들이 실제로 무엇인지 궁금 해서요? 나는 그들이 왜 그리고 왜 내가 변환을 위해 변경해야 하는지를 완전히 이해하기를 원했을 때 오류로 보일 것을 알았다.HSL에서 RGB로 변환 도움이 필요합니다

void HSLToRGB(int H, int S, int L, int& R, int& G, int& B) 
{ 
H = 240; 
S = 47; 
L = 58; 


if (S == 0) 
{ 

    R = L * 255 
     G = L * 255 
     B = L * 255 
} 
else 
{ 
    if (L < 0.5) { var_2 = L * (1 + S); } 
    else 
    { 
     var_2 = (L + S) - (S * L); 
     var_1 = 2 * L - var_2; 
    } 
    var_1 = 2 * L- var_2; 
    R = 255 * Hue_2_RGB(var_1, var_2, H + (1/3)); 
    G = 255 * Hue_2_RGB(var_1, var_2, H); 
    B = 255 * Hue_2_RGB(var_1, var_2, H - (1/3)); 
} 
static float Hue_2_RGB(float v1, float v2, float vH) 
{ 
if (vH < 0) { vH += 1; } 
if (vH > 1) { vH -= 1; } 
if ((6 * vH) < 1) { return (v1 + (v2 - v1) * 6 * vH); } 
if ((2 * vH) < 1) {return (v2); } 
if ((3 * vH) < 2) 
{ 
    return (v1 + (v2 - v1) * ((2/3) - vH) * 6); 
    return (v1); 
} 
} 

미안 미안하지만이 질문이 단지 laymans 용어로는 100 % 이해하고 싶었을뿐입니다.

감사합니다. RGB에서 HSL로 변환하는 코드도 포함되어 있지 않습니다.

+1

표시하는 코드에 정의되어 있지 않기 때문에 알 수있는 방법이 없습니다. 우리는 다른 값이 무엇인지에 따라 추측 할 수 있지만, 이는 아무런 보장도되지 않습니다. 나는 그들이 아마도 int임을 의미하는 C라고 추정한다. – Rob

+0

아직까지는 아무 것도 할당하지 않았지만 RGB 변환을위한 알고리즘을 찾고 있었고 Var_1과 2를 선언해야하는 문제가있었습니다. 도움이되는지 확실하지 않습니다. – IFKCode

+0

만약 당신이 단지 그것을 시험해보고 그것이 컴파일되는지를 알고 싶다면 나는 int로 만들 것이다. – Rob

답변

0

표시하는 코드에 정의되어 있지 않기 때문에 알 수있는 방법이 없습니다. 우리는 다른 값이 무엇인지에 따라 추측 할 수 있지만, 이는 아무런 보장도되지 않습니다. 나는 이것이 아마도 C라고 가정하고 그들은 아마도 int을 의미합니다.

만약 내가 그것을 시험해보고 컴파일을 원한다면 나는 그것들을 int으로 만들 것입니다. 컴파일하면 알고리즘에 더 많은 정보를 파고 어떤 것이 효과가 있고 얼마나 멀어지는 지 확인할 수 있습니다.