gksrudtlr
|2025. 3. 17. 20:51
스크린 좌표계 -> 월드 좌표 변환
- 스크린 좌표계
- 왼쪽 상단을 0,0을 기준으로 오른쪽 아래를 width-1, height-1로 하는 좌표계
- 오른쪽 아래로 내려가면 + 방향으로 값이 늘어나는 특징을 가짐
- 월드 좌표계
- 보통 화면의 정 중앙을 0,0으로 하고, 가로를 -aspect ~ aspect, 세로를 -1~1로 하는 좌표계
- 오른쪽 위로 가면 +, 왼쪽 아래로 가면 -로 우리가 많이 사용하는 데카르트 좌표계이다
- aspect는 가로 세로 화면의 비율을 나타낸다
- 좌표 변환
- 스크린에서 월드로 좌표를 변환하기 위해서는 스크린과 월드 상의 좌표를 비율로 먼저 변경해야 한다
- 일정한 변환을 위해 먼저 스크린 좌표계를 정규화 하여 0~1 사이의 값으로 만들어 줘야한다
- 따라서 0<= xScreen <= width-1 -> 0<= xScreen / (width-1) <= 1, 0<=yScreen <= height-1 -> 0<= yScreen / (height -1) <=1 이 된다
- 월드 좌표는 -aspect<= xWorld <= aspect -> 0 <= xWorld+aspect <= 2*aspect -> 0<= (xWorld+aspect)/2aspect<=1, -1<= yWorld <= 1-> 0 <= yWorld+1 <=2 -> 0<=(yWorld+1)/2 이된다
- 결국 xScreen/ (width-1) = (xWorld+aspect)/2aspect, yScreen/(height-1) = (yWorld + 1)/2 이다
- 이를 World로 연산하면 xWorld = 2aspect* xScreen/(width-1) - aspect, yWorld = 2* yScreen / (height-1) -1이 된다