2011-03-07 2 views
3

C++의 지형 충돌 예제를 찾고 있지만 아무것도 찾지 못했습니다. 나는 toymaker.info에있는 .RAW 파일을 사용하는 한 가지 예를 발견 했으므로 언급하지 마십시오.
개체 삼각형에 대한 개체 지형 간의 충돌을 어떻게 감지합니까? 나는 그것이 천천히 일어날 것임을 압니다. 지형과 .X 파일 간의 충돌을 어떻게 감지합니까? .X 파일을 사용한 지형 충돌

당신의 충돌을 테스트하고자하는 영역의 중심을 원점에서 선을 그립니다 :

답변

2

여기 하나의 방법입니다. 이제 방금 만든 광선, 즉 광선을 사용하여 광선 삼각형 교차를하십시오. 광선이 삼각형을 통과했는지 여부를 이제 알 수 있습니다. 삼각형을 통과 한 경우 삼각형을 교차 한 점을 얻고 구의 중심과 간단한 거리 확인을 수행합니다. 거리가 구의 반경보다 큰 경우에는 충돌이 발생하지 않습니다. 그것보다 작 으면 구가 삼각형과 교차합니다.

또한 구의 중심이 어느 삼각형면에 있는지 확인할 가치가 있습니다. 이것은 삼각형의면 법선과 구의 중심 사이의 간단한 내적입니다. 값 0은 구의 중심이 삼각형에 있음을 나타내고 양수 결과는 한쪽에는 음수, 다른 하나는 음수임을 나타냅니다.

이 계산은 일정 기간 동안 수행 할 수도 있습니다. 따라서 여러분이 초를 시뮬레이트하고 있음을 알고 있고 구가 움직이는 속도를 알고 있다면, 구가 삼각형을 가로 지른 초 점을 계산할 수 있습니다. 이것은 계산하기가 아주 간단합니다. 처음에 구체가 삼각형에서 4 단위이고 1 초 후에 삼각형을 통해 1 단위입니다. 그래서 1 초 만에 5 단위 여행했습니다. 따라서 교차로가 0.8 초 동안 움직 였음에 틀림 없습니다. 이 방법을 사용하면 입자가 너무 빨리 이동해도 충돌하는 물체를 똑바로 지나칠 때도 입자의 충돌에 반응 할 수 있습니다.

관련 문제