2017-03-20 1 views
1

필자는 필자의 레일 애플리케이션에 학생과 가정 교사라는 두 가지 모델이 있습니다. 각 모델에는 위도, 경도, 반경 등의 고유 한 위치 속성이 있습니다. 반경은 학습/가르치기 위해 얼마나 멀리 만나고 싶은지 결정하기 때문에 학생/교사가 입력합니다. 위도와 경도는 Google API에 의해 결정되며 API를 사용하여 위도와 경도를 구할 수 있습니다. 그들 사이의 거리를 거리라고하면, 학생의 반경은 r1이고, 교사의 반경은 r2입니다. 이제 나의 일은 r1과 r2의 조건을 만족시킬 수있는 학생과 교사를 맞추는 것입니다. , 내가 알고리즘은 모든 경우를 포함한다고 생각하더라도 내 솔루션의 정확한 확실하지 않다 그러나두 사람을 반경과 거리에 따라 일치시키는 가장 좋은 알고리즘은 무엇입니까?

match tutor and student if distance - r1 - r2 <= 0 

: 나는 해결책을 마련했습니다

  1. 두 원은 일반적인 하나가 포인트.
  2. 두 개의 원에는 공통점이 2 개 있습니다.
  3. 원 중 하나는 다른 하나의 내부에 있습니다.

나는 이것이 어려운 문제는 아니라고 생각하지만, 고등학교 때부터 지오메트리를 만지지는 않았으므로 여기에있는 조언은 인정 될 것입니다.

+0

왜 거리가 <= min {r1, r2}'가 아니겠습니까? – amit

+1

무엇이 당신의 질문입니까? –

+0

@DanielWagner, 방금 질문을 편집했습니다. 상기시켜 줘서 고마워. –

답변

0

반경 r뿐만 아니라 두 객체 모두 x 위치가 필요합니다.

dx = x1 - x2 
dy = y1 - y2 
dz = z1 - z2 
sqrt(dx*dx + dy*dy + dz*dz) <= r1 + r2 

나머지는 간단합니다 때

그런 다음 두 원이 교차한다.

+0

도와 주셔서 감사합니다. 그러나 어떻게 솔루션을 생각해 냈고 올바른 소스를 알려 주 었는지 조금 설명해 주시겠습니까? –

+0

기본 기하학입니다. http://mathworld.wolfram.com/Circle-CircleIntersection.html을 참조하십시오. 귀하의 3D 또는 2D 여부에 따라 다릅니다. –

+0

좋아, 나는 그것을 살펴볼 것이다. 좋은 하루 되세요. :) –

관련 문제