2011-11-19 2 views
10

2D 선 세그먼트를 결합하는 방법을 찾고 있습니다. 선분은 두 개의 벡터 점, 선분의 시작과 선분의 끝점으로 구성됩니다.두 번째 선 세그먼트 합치기

같은 직선을 형성해야하는 것처럼 보이는 선분을 결합하고 싶습니다. 완전히 다른 방향이지만 서로 가깝게 두 점이있는 경우 선분에 가입하고 싶지 않습니다. 이 시스템을 사용하려고하는 시스템은 컴퓨터 비전 시스템이므로 얻은 선분이 완벽하지 않을 수 있습니다. 즉 방향이 약간 벗어날 수 있고 세그먼트가 전체 길이가 아닌 것일 수 있습니다.

나는 다음과 같은 3 예 내가 함께 가입 할 선분의 종류 다루 생각 :

Example

감사

답변

8

을이 전산 기하학 문제가 관련 교과서에서 몇 가지 솔루션이있을 수있다, 그러나 이러한 문제는 일반적으로 해결하기가 매우 어렵고 한정된 정밀도가 실제 문제라는 경고를받습니다. 이 문제와 관련하여 (2D에서) 당신이 찾고있을 가능성이있는 용어는 라인이 collinear 근처에 있다는 것입니다. 일반적으로 선이 동일 선상에 있는지 확인하기 위해 먼저 vector representation에 입력 한 다음 벡터 사이의 내적을 가져 와서 선 사이의 각도 코사인 값과 같습니다. 따라서이 값이 1에 가까울 경우 공선에 가깝고 합쳐야합니다.

다음 문제는 선을 연결해야 할 정도로 가까이 있는지 확인하는 것입니다. intersect이라는 줄을 찾거나 시작 지점과 끝 지점이 매우 가까운 줄을 찾는 방법이 있습니다. 일반적으로 쉬운 것은 아니지만 95 % 정도를 얻을 수 있습니다.