OpenGL의 좌표계는 화면에 중심에 0,0 으로 부터 좌측 -1.0 우측 +1.0
위로 +1.0 아래로 -1.0 이더라
마치 수학시간 좌표계
이게 지금까지 컴퓨터 그래픽 좌표계와 달라서 혼돈스럽다.
gwidth
gheight
가 설정되어 있다고 가정 하고 아래에 함수를 이용해서 x,y를 입력하면
OpenGL에서 사용하는 화면에 중앙을 기준으로 float -1.0 ~ +1.0까지의 x, y
좌표 체계로 변환 하는 함수이다.
void convertDeviceXY2OpenglXY(int x, int y, float * ox, float * oy)
{
int w = gwidth;
int h = gheight;
*ox = (float)((x - (float)w/2.0)*(float)(1.0/ (float)(w/2.0)));
*oy = -(float)((y - (float)h/2.0)*(float)(1.0/ (float)(h/2.0)));
}
를 이용 할수 있다.
https://github.com/sparrowapps/CohenSutherlandLineClipp
코헨서덜런드 라인클립핑 알고리즘을 mac os에서 OpenGL로 구현할때
이함수를 이용 하였다.
댓글 없음:
댓글 쓰기