반응형

라인 드로우를 구현할때, openGL, DX, winDC 등을 사용할 수 없는경우,

바닥부터 맨땅에 코딩을 해야하는 경우가 생기더라.

그때를 위한 참고용 코드.

 

Void DrawLine(int x1, int y1, int x2, int y2)
{
    int aX=0, aY=0;
    int cnt = 0;
    int dx = x2-x1;
    int dy = y2-y1;

    if(dx < 0) {addX = -1; dx = -dx;}
    else addX = 1;
    if(dy < 0) {addY = -1; dy = -dy;}
    else addY = 1;
    
    int x = x1;
    int y = y1;
    if(dx >= dy)
    {
        for(int i = 0 ; i < dx ; i++)
        {
            x += addX;
            cnt += dy;
            if(cnt >= dx)
            {
                y += addY; cnt -= dx;
            }
            drawPoint(x,y);
        }
    }
    else
    {
        for(int i = 0 ; i < dy ; i++)
        {
            y+= addY;
            cnt += dx;
            if(cnt >= dy)
            {
                x += addX; cnt -= dy;
            }
            darwPoint(x,y);
        }
    }
}

 

 

+ Recent posts