2009-12-05 2 views
1

Ok. 그래서 나는 뉴욕시와 베이징이 구글 어스에서 상상의 대상이 될 것이라고 생각합니다. ...3 차원 물체에서 2 점을 찾고 거리를 구하십시오.

3D 원시 객체 (구)에 점을 매핑하는 방법을 알아 내려고하고 있습니다. 원주에 의한 방향, 직경에 의한 거리 등이있다. 점은 위도와 경도 좌표가 될 것입니다.

x1 = radius * cos(long1) * cos(lat1); 
    y1 = radius * sin(long1) * cos(lat1); 
    z1 = radius * sin(lat1); 

을하지만 난 그 잘못 거의 확신 :

는 지금이 내가 좌표 (코드 무신론자 버전)을지도하는 데 사용할 노력하고있어입니다. 어떻게하면 각 점의 위치를 ​​얻을 수 있고 구의 직경과 구의 원주를 따라 이동하는 거리에 직각으로 거리를 계산할 수 있습니까?

감사합니다.

답변

4

당신은 실제로 아주 가깝습니다.

SQRT ((X2-X1)^2 + (Y2-Y1)^2 + (Z2-Z1)^2)

을 거리의 경우 : 직선 거리를 얻으려면, 당신은 간단하게 할 필요가 큰 원 주위에, 그것이 diam 각도임을 기억하십시오. 지구의 중심에서 두 점까지의 벡터의 내적은 각도의 코사인입니다. 그래서, 당신은 얻을 :

파이 다이아 ACOS ((X1의 *의 2 배 +의 Y1의 * Y2 + Z1 * Z1)/DIAM^2)

당신이 주변에 다른 길을 갈 경우 제 2의 거리 거기에 물론

지구,하지만 당신은 단지 2 * pi - acos (...)가 필요합니다.

+0

더 많은 관련 수식을 보려면 'orthodromic distance'에서 wikipedia를 검색하십시오. – Paul