2021. 6. 29. 19:32

라인 드로우를 구현할때, 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);
        }
    }
}

 

 

'Computer Programming > C,C++,MFC' 카테고리의 다른 글

[C/C++] C언어 입력함수 scanf  (0) 2017.02.15
[C/C++] Bit Field, 비트 변수 ':'  (0) 2017.02.13
[C/C++] fopen 함수의 옵션값 정리  (0) 2016.11.10
[C/C++] bsearch 함수  (0) 2016.06.22
[MFC]CString <-> Char* 변환  (0) 2013.11.08
Posted by 은돌군