경로가 더 곡선 세그먼트 만 선형 사람들을 포함하지 않으며, 거리 요청을 많이 한 경로가 있다면, 당신은 몇 가지 전처리 (1 항목)를 사용할 수 있습니다 :
1. Calculate length of every segment, and cumulative path length till this segment's end
2. With distance request, find proper segment by binary search
(or linear search, if the number of segments is small)
3. Find parameter (0..1) of relative position of point in this segment
4. Calculate coordinates as linear combination of segment end points.
간단한 예 : 를 당신은 시작 지점으로부터의 거리를 의미하는 경우
Points (0,0), (1,0), (1,2), (4,-2), (6,-2)
Lengths [1, 2, 5, 2]
Path cumul. lengths: [0, 1, 3, 8, 10]
Distance req.: 5
Binary search finds 3rd segment (5 is between 3 and 8)
3*(1-t)+8*t=5 (equation to find a parameter)
t = 0.4
X = P[2].X * (1-t) + P[3].X * t
Y = P[2].Y * (1-t) + P[3].Y * t
use (1,2) and (4,-2) coordinates
(X,Y)= (2.2, 0.4)
출처
2014-02-19 06:15:07
MBo
, 당신은 실제로 – mathematician1975
나는 선을 따라 시작 지점으로부터의 거리를 의미하는 고유하지 않을 수 있습니다 추구 발생합니다. 내 질문을 편집합니다 :) – Legisey
경로에 곡선 세그먼트가 있습니까? 일반적인 사용법은 무엇입니까? 하나의 길과 많은 거리 요청입니까? – MBo