2012-03-14 4 views
2

C++ (DarkGDK 라이브러리)를 사용하여 색상 그라디언트 (파란색에서 흰색, 왼쪽에서 오른쪽)를 만들려고합니다. for 중첩 된 for 루프를 사용하여이 작업을 수행하려고합니다. 는 여기에 지금까지 가지고 무엇을 : 나는 빨간색과 녹색 값이 1에 의해 반복 될 때마다를 갈 수 있도록 무슨 일을하는지 알 수 없을DarkGDK 색상 그라디언트 코드

#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(); 
} 

. 나는 이것을 3 시간 동안 꼼짝 않고 바라 보지 않고 아무런 진전을 이루지 못했습니다 ...

도움이 되셨을 것입니다.

+0

시작이 간단합니다. 먼저 한 픽셀을 두꺼운 그라디언트로 만든 다음, 완료되면 y 축에서 반복하십시오. 그래디언트가 작동하는 방식을 이해하지 못한다면 단순한 생각부터 시작할 수 있습니다 : 회색에서 (거의) 검은 색으로 변색하는 방법은 무엇입니까? R, G, B를 확장하면됩니다. – Rookie

답변

2

필요한 메서드는 dbRGB()가 포함 된 dbInk()이며,이 라이브러리를 사용할 때 중요한 while 루프를 놓쳤습니다. 이것이 수행는 for 루프로 상기 variabe의 X를 이용하여 왼쪽에서 오른쪽으로 아래로 화면 상단에서 직선 그리기 화면을 수평으로 스캔하는 것이 무엇

#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; 
} 

.

흰색은 255,255,255 또는 0xFFFFFF이므로 파란색에서 흰색으로 바꾸려면 빨간색과 녹색에 1을 추가하여 흰색으로 끝까지 가야합니다. 다른 예로서, 검은 색 파란색까지 갈 것 인 경우에

, 당신은

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

그것을 시도()로 dbInk를 교체하고 재미 코딩을 할 것이다.

관련 문제