DarkGDK颜色渐变代码

时间:2012-03-14 20:13:58

标签: c++

我正在尝试使用C ++(DarkGDK库)制作颜色渐变(蓝色到白色,从左到右)。我正在尝试使用嵌套for循环完成此操作。 这是我到目前为止所做的:

#include "DarkGDK.h"

void DarkGDK()
{
    int colorDepth = dbScreenDepth();
    dbSetDisplayMode(256,256,colorDepth);
    dbClear(0,0,255);
    for (int y = 0; y < 255; y++)
    {
        for (int x = 0; x < 255; x++)
        {

        }
    }
    dbWaitKey();
}

我无法弄清楚如何在每次迭代时使红色和绿色值增加1。我一直盯着这个看了3个小时,没有取得任何进展......

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

你需要的方法是dbInk(),其中包含dbRGB(),你错过了while循环,这在使用这个库时很重要。

#include "DarkGDK.h"

void DarkGDK (void)//Main
{
    int screenHeight = 256;
    int screenWidth = 256;
    int screenDepth = 32;

    dbSetDisplayMode(screenWidth,screenHeight,screenDepth);

    while(LoopGDK())//Main Loop
    {
        dbClear(0,0,255);
        for (int x = 0; x < screenWidth; x++)
        {
            dbInk(dbRGB(x,x,255),dbRGB(x,x,255));
            dbBox(0+x,0,1+x,screenHeight);
        }
        dbWaitKey();
    }
    return;
}

这是做什么的,它是水平扫描屏幕,使用变量x和for循环从屏幕顶部到左下方绘制一条直线。

由于白色为255,255,255或0xFFFFFF,并且您希望它从蓝色变为白色,因此您必须将红色和绿色添加1以使其一直变为白色。

如果您将它从蓝色变为黑色,另一个例子,您将用

替换dbInk()
dbInk(dbRGB(0,0,255-x),dbRGB(0,0,255-x));

尝试一下,并享受有趣的编码。