【C++】 랜덤한 색조의 무지개를 합성

C++에서 채도가 균일하고 랜덤한 색조의 무지개 같은 것을 만들어내려고 했습니다만, 의외로 궁리가 필요했습니다.
방법을 공유합니다.
Photoshop등에서 확인해 보면, 채도가 max의 색은,
1.rgb 중 하나의 요소가 255
2. 다른 두 가지 중 하나의 요소가 0
3. 나머지 요소 중 하나가 0 ~ 255 사이의 값
라는 조건을 충족하는 것 같습니다.
위의 요구 사항을 충족하는 rgb 값을 무작위로 생성합니다.
    // 虹色ランダムの合成
    int color_elem[3];
    color_elem[0] = 255;
    color_elem[1] = rand() % 256;
    color_elem[2] = 0;
    int color_r_index = rand() % 3;
    int r_bin = rand() % 2;
    int color_g_index = (color_r_index + 1 +  r_bin) % 3;
    int color_b_index = (color_r_index + 1 + !r_bin) % 3;
    // openFrameworksの色構造体に色を格納
    // color.set(red, green, blue);で色を作成できる
    ofColor color;
    color.set(color_elem[color_r_index], color_elem[color_g_index], color_elem[color_b_index]);

채도를 조절하기 위해,
    color_elem[1] = rand() % 256;

곳을
    color_elem[1] = rand() % (256 - BIUS) + BIUS;
    // 0 < BIUS <= 256

같이하면 좋을 것 같습니다.



야시! 이젠!

좋은 웹페이지 즐겨찾기