2009-08-19 6 views
0

큐브에서 어떤 얼굴을 클릭했는지 계산하고 싶습니다. 마우스를 3D로 내려 놓았습니다. 3D로 마우스의 위치에서 물건을 그릴 수 있습니다.큐브 얼굴 얻기

지금 내가해야할 것은 큐브의 어떤면을 만지고 있는지 계산하는 것입니다.

EG. 함수가 있는데 크기, 위치 및 마우스 위치를 전달하면 얼굴을 반환합니다. 위, 아래, 왼쪽, 오른쪽, 앞, 뒤.

간단하지만 들리는 것은 없습니다.

모두 감사합니다, SilentC

사용하지만, OpenGL을이이 작업을 수행하는 selection API를 가지고 무엇 API 확인

답변

1
당신은 바로 큐브의 모든 얼굴에 대한 line plane intersection을 계산해야

카메라 위치 및 뷰 평면상의 마우스 위치에 의해 정의 된 선. 비행기에는 있지만 큐브의면에는없는 모든 교차점을 버리고 가장 가까운 것을 선택하십시오.

큐브를 12 트라이앵글로 나타내는 경우 선 삼각형 교차를 사용할 수도 있습니다. 그러나 두 경우 모두보다 구체적인 답을 얻기 위해 더 많은 정보를 제공해야합니다.

+0

정의 된 선은 카메라에서 마우스까지입니다. 맞습니까? –

+0

또한, 회전을 보상한다고 가정합니다. –

+0

카메라에서 ** 무한대까지의 ** 마우스는 하나 이상의면 (일반적으로 단일 큐브 만있는 경우 두 개)과 교차합니다. 모서리, 정점 및 선에 평행 한 모든면과 같은 축퇴 사례는 무시하십시오. 뒤쪽 얼굴을 도려내는 것은 가치가 있습니다. 사용자는 거의 확실하게 가장 가까운 얼굴을 원하지만 사용자가 원하는 경우 숨겨진 개체를 선택할 수 있도록 얼굴 중에서 선택할 수있는 여유를 제공 할 수 있습니다. – RBerteig