2013-04-02 4 views
0

십진수로 4 개의 그리드 좌표를 사용하여 33.829785, -84.3958과 비슷하게 맵에 사각형을 그릴 수 있습니다. 그러나 때로는 좌표가 올바른 순서로 전달되지 않아 외곽 점이있는 삼각형이됩니다. 이것을 연구하면서 S.O.에 herehere을 보았습니다. 또한 Jgraph, JungGrappa을 조사했습니다. 그러나 이러한 프레임 워크는 그래프를 평가하는 것이 아니라 조작하는 그래프를 만드는 데 더 적합합니다. 나는 또한 java.lang.comparable 인터페이스에 의해 부과 된 제한 때문에 십진수가 아닌 네 개의 정수 포인트를 정렬하기 위해 작동하는 다음 코드를 발견했다.그리드 좌표의 방향을 올바르게 지정하는 방법

int[][] array={{2,2},{1,1},{4,3},{2,1},{10,1}}; 
      Arrays.sort(array, new Comparator<int[]>(){ 
        public int compare(int[] a, int[] b){ 
          //assumes array length is 2 
          int x,y; 
          if (a[0]!=b[0]) { 
            x=a[0];y=b[0]; 
          } 
          else{ 
            x=a[1];y=b[1]; 
          } 
          if (x<y) return -1; 
          else if (x==y) return 0; 
          else return +1; 
        } 
      }); 
      for(int[] term: array){ 
        System.out.println(Arrays.toString(term)); 
      } 
+0

언급 한 비교 대상의 제한 사항은 무엇입니까? – pamphlet

답변

1

게시 한 코드는 double과 작동하도록 변환해야 사용할 수 있습니다. 왜 그렇게 생각하지 않을지 모르겠다.

반환 유형이 compare 인 경우 혼란스러워하지 말고 그대로 두어야합니다 (int). int에 대한 다른 모든 언급은 두 배가됩니다. 도움이 될 수도 있습니다. Comparator with double type

행운을 빕니다!

관련 문제