Direct를 이용한 구의 충돌 테스트

Direct를 이용한 구의 충돌 테스트 -랜스


 원 과 구의 차이는 무엇일까요?
쉽게 생각해서 2D-> 3D 라고 할수있습니다.
2D에는 x,y 좌표만있지만 (깊이도있습니다만 수학적으로) 3D에서는 한가지더 z라는 값이 있죠.
 
그렇다면 원의 충돌체크와 구의충돌체크의 차이점도 구에 생긴 한가지 값을 이용한 연산을
해주면 되는걸까요?

 예 맞습니다. -_- 단지 그것만 해주면 구의 충돌체크가 됩니다.. 실로 매우 간단합니다..
왜냐하면 원의 방정식과 구의 방정식 둘다 각자 접할때와 겹칠때의 조건이 같기때문에
구에 추가된 Z값을 중점사이의 거리를 구하는데 사용해주면 구의 방정식에서 충돌이 성립합니다.
 
 아래는 참고용 소스입니다.  

bool isCollision(Sphere* m1,Sphere *m2)                
{                                                            
 중점사이의거리= sqrt((float)((m2->x-m1->x)*(m2->x-m1->x))
               +((m2->y-m1->y)*(m2->y-m1->y))            
               +((m2->z-m1->z)*(m2->z-m1->z)));         
 if(m1->r+m2->r>=중점사이의거리)                            
  return TRUE;                                             
 else                                                       
  return FALSE;                                            
}

 
[##_kaAmo_##]
Posted by 랜스.

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다


Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/31
  2. 닭도난다 2009/03/09 08:06  Modify/Delete  Reply  Address

    멋지군요! ㅎ

: 1 : 2 : 3 : 4 : 5 :