마우스가 눌러진 후에 마우스를 움직이면 회전값을 올리는 코드이다.
void MyView::OnMouseMove(UINT nFlags, CPoint point) {
xAngle += (point.y-mouseDownPt.y) / 3.6;
yAngle += (point.x-mouseDownPt.x) / 3.6;
mouseDownPt = point;
}
위의 계산 공식에서 3.6을 나눠주는 이유?
마우스를 1 픽셀 이동했을 경우 1/3.6 회전, 즉 0.27777778도 회전하게 되는데, 이 회전량이 사용자가 가장 자연스럽게 느껴지므로 3.6으로 나눴다. 좀더 회전정도를 강하게 하고 싶다면 이 값을 줄이면 회전이 팍팍!! 되도록 할 수 있다.
[출처]
http://www.gisdeveloper.co.kr/?p=206
'◼️OpenGL' 카테고리의 다른 글
[OpenGL] 도형 선택해서 값 읽어오기 (0) | 2023.09.12 |
---|---|
[OpenGL] 투명 도형 그리기 (0) | 2023.09.11 |
[OpenGL] 종횡비 조절 및 물체 형태가 변하지 않게 평행이동 (0) | 2023.09.04 |
OpenGL x, y, z축 회전 후 좌표값 구하기 (0) | 2023.05.19 |
OpenGL gluLookAt 카메라 회전 적용 (구에서 점의 회전 좌표 구하기) (0) | 2023.04.29 |