연재 완료/프로그래밍용 수학 공부

6. 원과 구

라이피 (Lypi) 2018. 11. 22. 20:35
반응형

원 (Circle)

  # 원은 평면 위의 한 점으로부터 반지름만큼 떨어진 점들의 집합이다.


  # 중심이 (a,b)이고 반지름이 r인 원의 방정식은 (x-a)^2+(y-b)^2=r^2이다.



  # (기초적인) 원을 나타내는 구조체 

struct circle
{
	float center[2];
	float radius;
};



구 (Sphere)

  # 구는 공간 위의 한 점으로부터 반지름만큼 떨어진 점들의 집합이다.


  # 중심이 (a,b,c)이고 반지름이 r인 구의 방정식은 (x-a)^2+(y-b)^2+(z-c)^2=r^2이다.



struct sphere
{
	float center[3];
	float radius;
};


충돌 체크

  # 원이나 구나 충돌체크 원리는 똑같다.

  # 두 원이나 구의 반지름의 합과 중심 간의 거리를 비교하면 된다.

  


  # 원1과 원2의 반지름의 합은 5.5, 중심과 중심간의 거리는 6.32로 중심간의 거리가 더 멀다. 그러므로 충돌X

  # 원1과 원3의 반지름의 합은 4.5, 중심과 중심간의 거리는 3.57로 중심간의 거리가 더 가깝다. 그러므로 충돌O


  #원1이 (x-h1)^2+(y-k1)=r1^2, 원2가 (x-h2)^2+(y-k2)=r2^2로 정의되면

  # 기본적인 충돌체크 식 : 제곱근((h2-h1)^2+(k2-k1)^2) <= r1+r2

  # 더 빠른 충돌체크 식 : (h2-h1)^2+(k2-k1)^2 <= (r1+r2)^2


  # 물체와 물체간의 충돌체크시에도 물체 전체를 감싸는 경계원끼리 충돌체크를 한 뒤, 세부적인 충돌체크를 하는 편이 계산이 빠르다.


  

  

반응형