即時嘗試旋轉繪製功能的顏色,任何一個做了類似的,可以幫助使它看起來不錯。旋轉顏色?
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);
}
編輯
買旋轉的色彩我的意思是我希望我的畫筆,從紅色漸變爲藍色,從藍色到綠色,然後黃色和回沖,四做索姆更期待在這個這就是我想要的
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 2012-03-05 20:45:21
@Darkmage:你到底意味着什麼? – Tigran 2012-03-05 20:45:49
我更新了我的帖子。 – Darkmage 2012-03-05 21:00:35