2012-05-20 3 views
0

OpenGL에서이 두 이미지와 같이 보이도록 큐브를 회전하고 변환해야합니다. cubes정면을 향한면이 정사각형이되도록 큐브를 회전하십시오.

변형없이 전면을 향한 적색 면만 보입니다. 나는 단지 그것을 회전시킬 수있는 방법을 이해하지 못하기 때문에 (이미지의 상단과 우측이 보이도록) 빨간색면을 완벽하게 사각형으로 유지하십시오.

저는 왼쪽 하단으로의 변환에 대해 생각해 보았습니다.하지만 빨간색 사각형 만 움직이면 다른 얼굴이 보이지 않습니다. 당신이 원근 투영 (당신이있는)과 큐브의 전면을 사용하는 경우 내가 glFrustum(-20, 20, -20, 20, -1, -10);

+0

"다른 얼굴을 볼 수 없게합니다." 그런 다음 투시 투영법을 사용하면 효과가 있습니다. – Calvin1602

답변

1

을 사용하고

가 xy 평면에 평행, 당신은 단지의 경우 다른 두 얼굴을 볼 것이다 입방체는 완전히 시선 공간의 한 사분면에 있습니다. 즉, 창을 반으로 자르는 가로 및 세로 선이있는 경우 큐브는 네 개의 결과 직사각형 중 하나에 완전히 있어야합니다. 다른 두 얼굴을 만들기위한

다른 옵션은 등각 투영

  • 이보기에 다른 얼굴을 가지고 큐브를 회전

    • 사용할 수 있습니다 보여줍니다.

    이것을 시각화하는 데 도움이되도록 Minecraft (말)을 재생하고 다른 방법으로 이동하여 다른 블록의면이 어떻게 보이는지 봅니다.

  • 1

    로테이션이 아닙니다.

    두 번째 그림은 직교 투영 (glOrtho)처럼 보이지만 우연 일 수 있습니다.

    두 경우 모두 입방체가 인 경우을 원점에서 왼쪽 하단으로 멀리 옮겨 놓은 경우에만 이미지를 얻을 수 있습니다.

    +0

    +1 : 번역입니다. 그러나 두 번째 그림은 직각 투영이 아닙니다. 그것은 무심코 예상입니다. – Calvin1602

    관련 문제