正在寻找使用RGB颜色交叉褪色的C#的帮助

正在寻找使用RGB颜色交叉褪色的C#的帮助,c#,colors,fading,C#,Colors,Fading,好的,我在C#中制作了一个应用程序,它使用外部LED控制器从我的屏幕上轮询ambilight SFX的信息。我的问题是,代码是什么,或者我如何制作一个颜色交叉淡入类型的东西,从红色到绿色再到蓝色,然后把RGB值作为 red = CODE; green = CODE; blue = CODE; 我在C++中使用了“插值(FADESTEP,Delay,数组)”,我只是不知道C<< /P> 想一想画一个2D盒子,让它从一种颜色渐变到另一种颜色,这就是想法 我只想设置淡入淡出的速度 好的,如果我没听

好的,我在C#中制作了一个应用程序,它使用外部LED控制器从我的屏幕上轮询ambilight SFX的信息。我的问题是,代码是什么,或者我如何制作一个颜色交叉淡入类型的东西,从红色到绿色再到蓝色,然后把RGB值作为

red = CODE;
green = CODE; 
blue = CODE;
我在C++中使用了“插值(FADESTEP,Delay,数组)”,我只是不知道C<< /P> 想一想画一个2D盒子,让它从一种颜色渐变到另一种颜色,这就是想法

我只想设置淡入淡出的速度

好的,如果我没听错的话,你想从红色变为绿色再变为蓝色吗

从一个结构和一个枚举开始,保存我们的颜色数据和状态

public enum PrimaryColor
{
    Red,
    Green,
    Blue
}

public struct Color
{
    public byte r;
    public byte g;
    public byte b;

    public Color(byte r, byte g, byte b)
    {
        this.r = r;
        this.g = g;
        this.b = b;
    }
}
然后我们制作一些变量来保存状态数据,包括我们将遍历的数组

Color ActualColor = new Color(255, 0, 0);
int State = 0;
PrimaryColor[] Order = { PrimaryColor.Red, PrimaryColor.Green, PrimaryColor.Blue };
然后,在更新函数中(比如计时器或while循环等),我们添加一个小switch语句来更新颜色、检查字节下溢和更改状态

switch (Order[State])
{
    case PrimaryColor.Red:
        ActualColor.r++;
        if(ActualColor.g > 0) ActualColor.g--;
        if (ActualColor.b > 0) ActualColor.b--;
        if (ActualColor.r == 255 && ActualColor.g == 0 && ActualColor.b == 0) State++;
        break;
    case PrimaryColor.Green:
        ActualColor.g++;
        if (ActualColor.r > 0) ActualColor.r--;
        if (ActualColor.b > 0) ActualColor.b--;
        if (ActualColor.r == 0 && ActualColor.g == 255 && ActualColor.b == 0) State++;
        break;
    case PrimaryColor.Blue:
        ActualColor.b++;
        if (ActualColor.g > 0) ActualColor.g--;
        if (ActualColor.r > 0) ActualColor.r--;
        if (ActualColor.r == 0 && ActualColor.g == 0 && ActualColor.b == 255) State++;
        break;
    default:
        break;
}
if (State == Order.Length) State = 0;

//Send color data to your controller

好吧,如果我没听错的话,你想从红色变为绿色再变为蓝色吗

从一个结构和一个枚举开始,保存我们的颜色数据和状态

public enum PrimaryColor
{
    Red,
    Green,
    Blue
}

public struct Color
{
    public byte r;
    public byte g;
    public byte b;

    public Color(byte r, byte g, byte b)
    {
        this.r = r;
        this.g = g;
        this.b = b;
    }
}
然后我们制作一些变量来保存状态数据,包括我们将遍历的数组

Color ActualColor = new Color(255, 0, 0);
int State = 0;
PrimaryColor[] Order = { PrimaryColor.Red, PrimaryColor.Green, PrimaryColor.Blue };
然后,在更新函数中(比如计时器或while循环等),我们添加一个小switch语句来更新颜色、检查字节下溢和更改状态

switch (Order[State])
{
    case PrimaryColor.Red:
        ActualColor.r++;
        if(ActualColor.g > 0) ActualColor.g--;
        if (ActualColor.b > 0) ActualColor.b--;
        if (ActualColor.r == 255 && ActualColor.g == 0 && ActualColor.b == 0) State++;
        break;
    case PrimaryColor.Green:
        ActualColor.g++;
        if (ActualColor.r > 0) ActualColor.r--;
        if (ActualColor.b > 0) ActualColor.b--;
        if (ActualColor.r == 0 && ActualColor.g == 255 && ActualColor.b == 0) State++;
        break;
    case PrimaryColor.Blue:
        ActualColor.b++;
        if (ActualColor.g > 0) ActualColor.g--;
        if (ActualColor.r > 0) ActualColor.r--;
        if (ActualColor.r == 0 && ActualColor.g == 0 && ActualColor.b == 255) State++;
        break;
    default:
        break;
}
if (State == Order.Length) State = 0;

//Send color data to your controller

你想挥手创作漫画吗?酷!你想挥手创作漫画吗?酷!非常感谢,我还在做婴儿步这是我使用C#的第五天了,我确实做得很好(我以前也做过,但我使用了一连串的计时器LOL)我仍然想看看其他人有什么要说的,并尝试所有这些帮助我为下一个项目学习更多谢谢一吨我仍然在做婴儿步这是我第五天使用C#我确实让它工作得很好(我以前也有工作过,但我使用了一连串的计时器LOL)我仍然想看看其他人有什么要说的,并尝试所有这些帮助我了解更多的下一个项目