두 폴리 라인이 평행한지 확인하려면 어떻게해야합니까? 그들은 exacly 수 평행 필요는 없지만이 같은 방향병렬 (유사) 폴리선을 함께 그룹화하십시오.
@Edit 내가 조금 다 더 뒤에 아이디어를 설명 할 필요가 있다고 생각
에 가고 있다는 점에서 유사해야합니다. 입력으로 나는 많은 폴리 라인을 얻는다. 내가하고 싶은 것은 폴리 라인을 서로 평행하게 그룹화하는 것입니다 (일반적으로 비슷한 방향으로). 결과는 비슷한 폴리선 그룹입니다.
폴리 라인은 어떻게 생겼습니까? 그들은 일반적으로 위쪽이나 왼쪽 또는 오른쪽으로 직선으로 이동합니다. 같은 y 값에서 시작하지 않아도됩니다. 폴리 라인의 점은 일반적으로 동일한 높이가 아니며 다른 y 값을 가짐을 의미합니다. 폴리 라인이 일정한 간격으로 평행하고 자주 달라지기 시작하면서 간격 경계를 찾고이 간격으로 폴리 라인의 일부를 정의하고 싶습니다. 물론 간격이 작아서는 안됩니다.
이제 예제를 설명하고 내가 원하는 결과를 보여 드리겠습니다. 파란색으로 표시된 4 개의 폴리선 P1 ~ P4로 시작합니다. 인간의 경우 P1 ~ P3의 선은 빨간 선 b1까지 평행합니다. 따라서 이것은 병렬 폴리 라인의 첫 번째 그룹 G1 일 수 있습니다. 수정 지시 b1 이후에는 평행 폴리선 P1 및 P4가 있습니다. 따라서 그룹 G2를 구축합니다. 폴리선 P3은 다른 어떤 것과도 평행하지 않으므로 G3 그룹에만 속합니다.
예를 도움이되기를 바랍니다. 두 개의 폴리 라인
예 I이 결과를 얻을 입력 폴리 라인에 더글라스 peuker 알고리즘을 적용한 후에
@Edit 2
NOT 평행 선언되어야한다. 이제 병렬 폴리 라인을 함께 그룹화하려고합니다. 비교할 항목을 찾으려면 어떻게합니까? 그림 "세그먼트를 비교하는 방법"에서 볼 수 있듯이 폴리선 1과 2는 간격 [b1, b2]에만 그룹화해야합니다. 이 간격은 어떻게 찾습니까? 사실은 비교할 세그먼트를 찾아야한다는 의미입니다. 내가 그들을 비교하고 평행하지 않으면 나는 평행하지 않은 것으로 분류한다. 평행선이라면 평행선 구간을 찾아야합니다. 하나의 폴리선이 다른 하나를 시작하고 끝낼 수 있기 때문입니다.
"그들은 똑같이 평행 할 필요는 없지만 같은 방향으로 가고 있다는 의미에서 유사해야합니다." 같은 방향으로 가고 있지만 서로 교차하는 세그먼트는 어떻습니까? – infotoni91
그들은 항상 일반 방향 (아래에서 위로 또는 다른 방향)을 가지고 있으며 단일 값 함수 X (y)로 간주 될 수 있습니까? – MBo
예, 항상 단일 값 함수입니다. 두 가지 예에서 볼 수 있듯이 x를 왼쪽에서 오른쪽으로 그리고 y를 아래에서 위로 모든 y가 하나의 x로 존재하는 경우. 항상 일반적인 방향이 아닙니다. 폴리 라인이 커브 일 수도 있다는 뜻입니다. –