2010-03-03 4 views
5

사용자가 원하는 모양을 사용자가 지정할 수있는지도를 만들려고합니다. 하지만 사용자가 다각형의 선을 교차시키고 포함시키려는 영역을 제외시키는 점을 선택할 수있는 문제가 발생했습니다. 4 각각의 사이에 상자의 네 모서리를 Google지도 폴리곤의 점을 정렬하여 선이 교차하지 않도록하는 방법은 무엇입니까?

  • 클릭 를 만들기 위해 4 점

    1. 클릭 :

      내가 this page로 이동하여 다음 단계를 수행 무슨 말인지 확인하려면 당신은 더 클릭 당신은 쉬

    수행

  • 상자의 perimter을 정의하게 된 점 이 같은 참조 울드 :

    alt text http://polygon.abemiester.com/1.bmp

    이 문제를 해결하는 쉬운 방법이 있나요 또는 나는 기본적으로 여기에 "세일즈맨 여행"타입의 상황을 다루고 있어요? 모든 논리는 javascript로 이루어 지므로이 작업을 수행하고 싶다면 "소스보기"를 자유롭게 사용하십시오.

  • 답변

    1

    볼록 선체에는 사용자가 제외시키려는 영역이 포함될 수 있습니다. 보다 만족스러운 결과를 줄 수있는이 방법에 접근하는 또 다른 방법이 있습니다. 각 줄을 확인하여 어떤 줄이 교차하는지 확인하십시오 (할 수있는 방법이 많이 있습니다). 그런 다음 두 선 사이에 나타나는 점의 하위 순서를 반대로합니다.

    예를 들어 B-C와 E-F가 교차하는 점 A-B-C-D-E-F-A가 있다고 가정합니다. 하위 시퀀스 C..E를 뒤집어서 A-B-E-D-C-F-A가되도록 교차 해제 할 수 있습니다.

    어쨌든 시도해 보는 것이 좋습니다.

    1

    나는 이전에도 비슷한 문제를 해결했으며 Jeffrey는 사용자가 어떤 모양을 기대하는지 정확히 알지 못한다고 언급하면서 문제가 발생했습니다. 나는 사용자가 새로운 점을 원할 때마다 두 점을 선택하도록 요구함으로써 그 문제를 해결했다. 더 많은 클릭 (3 대 1)이 필요하지만 사용자는 원하는 모양에 대해 전적으로 제어 할 수 있습니다. 관심이 있다면 나는 어딘가에서 사용했던 코드 (구글 맵용 코드)를 가지고 있을지도 모른다.

    2

    이것은 볼록한 선체가 아닙니다.

    "Linfield Oaks"에서 두 선이 교차하는 지점 근처에 정차 한 경우를 상상해보십시오. 볼록 선체가 이것을 건너 뛰고 "국제"와 "82"사이에 직선을 그립니다.

    당신이하려고하는 것은 새로운 점이 기존 점에 의해 형성된 다각형 내부에 있는지 확인하는 것입니다. 가장 가까운 다각형면을 끊고 그 가장자리에 새 점을 삽입해야합니다. 다각형 테스트의 요점은 http://softsurfer.com/Archive/algorithm_0103/algorithm_0103.htm을 참조하십시오.

    관련 문제