단위 구를 작업 중입니다. 나는 임의의 두 점 사이의 구 (지오다이딕)의 표면에 해협 선에 N 점을 놓는 것에 관심이있다. 이 점의 좌표는 구 좌표 (라디안)입니다.측지선의 점
같은 선을 따라 N 개의 등 간격 점을 어떻게 계산합니까? 내 계산에서 구체의 곡률을 고려하고 싶습니다.
파이썬을 사용하고 있습니다. 2.7.9
단위 구를 작업 중입니다. 나는 임의의 두 점 사이의 구 (지오다이딕)의 표면에 해협 선에 N 점을 놓는 것에 관심이있다. 이 점의 좌표는 구 좌표 (라디안)입니다.측지선의 점
같은 선을 따라 N 개의 등 간격 점을 어떻게 계산합니까? 내 계산에서 구체의 곡률을 고려하고 싶습니다.
파이썬을 사용하고 있습니다. 2.7.9
가 t 범위 내의 파라미터이다 [0..1], i 번째의 점 t(i) = i/N
위한
기하학적으로 이유를 설명합시다.
주어진 두 점을 데카르트 좌표로 변환하십시오. P 및 P0 사이
P = (1-t).P0 + t.P1
각도 :
P0과 P1의 중심으로부터의 위치 벡터 사이의 각도는 내적에 의해 주어진다
cos A = P0.P1
이들의 선형 조합을 구축 P 정규화 된 내적에 의해 주어진다.
cos a = cos kA/N = P.P0/|P| = ((1-t) + t.cos A)/ sqrt((1-t)² + 2.(1-t).t.cos A + t²)
제곱 및 다시 쓰기,
cos²a.(1-t)² + 2.(1-t).t.cos²a.cos A + t².cos²a - (1-t)² - 2.(1-t).t.cos A - t².cos²A = 0
- sin²a.(1-t)² - 2.(1-t).t.sin²a.cos A - t².(cos²A - cos² a) = 0
t²(-sin²a + 2.sin²a.cos A - cos²A + cos²a) + 2.t.sin²a.(1 - cos A) - sin²a = 0
방정식을 풀고 그 정의로부터 벡터 P를 계산하고 정규화합니다.
그런 다음 구 좌표로 되돌립니다. 1과 N-1 사이의 다양한 k는 필요한 중간 지점을 제공합니다.
또는 을 3D 축을 중심으로 사용할 수 있습니다. 축은 외적 (cross-product) P0 x P1에 의해 주어진다. 오메가 시작점과 끝점 사이의 중심각 (큰 원의 원호) 어디 있는지 SLERP - spherical linear interpolation
P = P0*Sin(Omega*(1-t))/Sin(Omega) + P1*Sin(Omega * t)/Sin(Omega)
을 고려할 수
아마도 도움이 될 것입니다. http://stackoverflow.com/questions/16015533/get-n-points-on-a-line –
이 질문을 보았습니다. 그렇지만 나는 관련 질문을했습니다. 진짜 구체, 지오이드가 아닙니다. –
URL에서 "Geod"는 측지선을 나타냅니다. 지오이드는 완전히 다른 것입니다. 그리고 제안 된 답변 (geographiclib 사용)은 타원체뿐만 아니라 구형에서도 작동합니다. –