메신저 기능을 사용하여 색상을 회전 시키려고했는데 어느 것이나 비슷한 효과를 내며 모양이 좋아 보이도록 도울 수 있습니다.회전하는 색상?
byte r = 200;
byte g = 100;
byte b = 050;
private int x = 1;
private void timer_elapsed(object sender, EventArgs e)
{
x++;
if(x % 3 == 0)
r++;
if(x % 5 == 0)
g++;
if(x % 2 == 0)
b++;
if (x > 100)
x = 1;
if (r >= 254)
r = 0;
if (g >= 254)
g = 0;
if (b >= 254)
b = 0;
inkCanvas1.DefaultDrawingAttributes.Color = Color.FromArgb(255, r, g, b);
}
편집
은 내가 내 브러시가 파란색으로 다시 빨간색으로 그린 후, 노란색과 파란색에서 빨간색에서 페이드 할 뜻 회전 색상을 구입, IV는 솜보기에보고 할 이것이 내가 원하는 것입니다.
254,0,0 = red
254,0,254 = pink
0,0,254 = blue
0,254,254 = cyan
0,254,0 = green
254,254,0 = yellow
254,0,0 = red
그래서 여기 if 간단한 문장을 보거나 더 똑똑한 방법으로 이것을 할 수 있습니까? 당신이 부드러운 방법으로 색상 변경, 당신은 HSV 색 공간을 사용하는 것이 좋습니다 것을 달성하려면
편집
내 현재의 논리는이
byte r = 255;
byte g = 0;
byte b = 0;
private void timer_elapsed(object sender, EventArgs e)
{
//going from red to pink
if (r == 255 && g == 0 && b <= 254)
b++;
//going from pink to blue
if (r >= 1 && g == 0 && b == 255)
r--;
//going from blue to cyan
if (r == 0 && g <= 254 && b == 255)
g++;
//going from cyan to green
if (r == 0 && g == 255 && b >= 1)
b--;
//going from green to yellow
if (r <= 254 && g == 255 && b == 0)
r++;
//going from yellow back to red
if (r == 255 && g >= 1 && b == 0)
g--;
inkCanvas1.DefaultDrawingAttributes.Color = Color.FromArgb(255, r, g, b);
}
"회전 색상"이란 무엇입니까? 몇 가지 예를 들려 줄 수 있습니까? – BlackBear
@Darkmage : 정확히 무엇을 의미합니까? – Tigran
내 게시물을 업데이트했습니다. – Darkmage