2017-11-22 5 views
-1

두 개의 독립적 인 3D 도형이 있습니다. 하나는 사각형이고 다른 하나는 원뿔입니다.두 3D 표면 사이의 교차

원뿔이 정사각형 안에 있다고 가정합시다. 어떤 방향으로 원추를 움직일 때 원뿔의 표면이 사각형의 표면에 닿는 것을 어떻게 알 수 있습니까?

표면이 다른 모양에 닿아 있는지 확인하는 알고리즘을 제안 할 수 있다면 도움이 될 것입니다.

저는 MATLAB을 사용하고 있지만 기본 논리는 어느 언어에서나 만족할 것입니다.

https://in.mathworks.com/matlabcentral/answers/367565-findout-surface-to-surface-intersection-between-two-3d-shapes

+0

링크의 솔루션에는 어떤 문제가 있습니까? 귀하의 질문에 대한 답변이 수학이라고 생각하십니까? 우리가 완전한 알고리즘을 제공 할 것으로 기대합니까? – Piglet

+0

잘 모르겠습니다 ... 사각형은 2D 모양입니다. 3D 공간 어딘가에 사각형이 놓여 있다는 뜻인가요? 그리고 "콘"이란 무엇을 의미합니까? 어떤 사람들은 아이스크림 콘처럼 반코 콘을 의미한다고 생각합니다. 수학적 원뿔은 축을 따라 -∞에서 + ∞까지 확장됩니다. –

+0

그리고 두 모양 사이의 교차 선 모양과 한계에 관심이 있으십니까? 이것은 잘 알려진 아주 오래된 수학의 한 부분입니다 : [원뿔형 부분 (conic section)] (https://en.wikipedia.org/wiki/Conic_section). –

답변

0

은, 잘린 원뿔이 볼록 형상이며, 그 AABB를 찾는 것은 그렇게 어려운 일이 아니다는 사실 덕분에 상대적으로 쉬운 해결책이있다.

먼저 큐브가 축 정렬되도록 (그리고 임의의 위치에 원추형으로) 공간을 회전하십시오. 그런 다음베이스의 AABB를 찾으려면 파라미터 방정식 C + R cos t + R 'sin t를 사용하여 좌표의 최대 값을 얻는 것으로 충분합니다. 여기서 C는 중심의 위치 벡터이고 R, R '두 직각 반경. 미분을 취소하여 한계 각을 찾을 수 있습니다.

세 좌표에서 극한치를 찾으면 전역 경계 상자는이 6 개 점과 정점을 둘러싼 경계 상자입니다.

AABB를 큐브와 비교하면 어떤 방향으로 충돌하기 전에 어떤 거리가 남아 있는지 알 수 있습니다.

enter image description here