我正在尝试使用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个小时,没有取得任何进展......
任何帮助都将不胜感激。
答案 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));
尝试一下,并享受有趣的编码。