컴퓨터그래픽스
- 최초 등록일
- 2010.11.09
- 최종 저작일
- 2010.11
- 5페이지/ 한컴오피스
- 가격 1,000원
소개글
컴퓨터그래픽스
목차
없음
본문내용
void MidpointLine(int x0, int y0, int x1, int y1, BYTE* ImgBuf)
{
int dx, dy, incrE, incrNE, d, x, y;
float m=0;
dx=x1-x0;
dy=y1-y0;
if(dx) m=dy/dx; //y축의 변화만 있을 때
x=x0;
y=y0;
if(m<1 && dx!=0){ //기울기가 1보다 작을 때
d=dy*2-dx;
incrE=dy*2; //E로의 이동을 위해서
incrNE=(dy-dx)*2; //NE로서의 이동을 위하여
WritePixel(x,y,ImgBuf); //시작점
while(x<x1){
if(d<=0){
d+=incrE; // E 선택
x++;
}else{
d+=incrNE; //NE 선택
x++;
y++;
}
WritePixel(x,y,ImgBuf); //인접 픽셀 그리기
}
}
else { //기울기가 1보다 클 때 y축과 x축을 바꾸었다고 생각함
d=dx*2-dy;
incrE=dx*2;
incrNE=(dx-dy)*2;
WritePixel(x,y,ImgBuf);
while(y<y1){
WritePixel(x,y,ImgBuf); //시작포인트
if(d<=0){
d+=incrE; //E선택
y++;
}else{
d+=incrNE; //NE선택
x++;
y++;
}
WritePixel(x,y,ImgBuf); //인접픽셀 그리기
}
}
}
참고 자료
없음