학교 수업에서 OpenGL을 배운다는데

교재에 있는 코드다


#include <stdio.h>
#include <math.h>

 

inline int round(const float a) {
 return int(a + 0.5);

}

 

void lineDDA(int x0, int y0, int xEnd, int yEnd) {

 

 int dx = xEnd - x0, dy = yEnd, steps, k;
 float xIncrement, yIncrement, x = x0, y = y0;

 

 if (fabs(dx) > fabs(dy))
  steps = fabs(dx);
 else
  steps = fabs(dy);

 

 xIncrement = float(dx) / float(steps);
 yIncrement = float(dy) / float(steps);

 

 setPixel(round(x), round(y));
 
 for (k = 0; k < steps; k++) {
  x += xIncrement;
  y += yIncrement;
  setPixel(round(x), round(y));


 }
}

 

아무것도 아는게 없어서 그냥

환경은 비주얼 스튜디오 2013에서

그냥 빈 프로젝트 생성해서 .cpp파일 만들어 실행시켰는데

컴파일 에러가 뜬다 ㅜㅜ

 

컴파일 에러 뜨는 부분을 보면,

round()

fabs()

setPixel() 세 부분인데..


round()는 반환형만 다른 오버로드라고 떠서 함수명을 고쳐서 해결하였고,

fabs()는 math.h 헤더 파일을 인클루드 하면 된다고 하는데 이게 잘 안고쳐짐 ㅜ

마지막으로, setPixel()은 API, MFC에서 쓰는 함수라는데

windows.h, afxwin.h 헤더파일을 인클루드 해도 안된다 ㅜㅜ


저 코드가 교재에 실려있는거라 잘못되어있는건 아닐텐데..

나 지금 무슨 삽질을 하고 있는건지 알려줄 게이 있냐 ㅜㅜ

 

코드가 잘못된것도 아닐텐데

뭐 한번 돌려보기가 이리 힘드냐 ㅜㅜ