2011-02-05 4 views
1

이미 화면에있는 다른 가젯 창 사이의 첫 번째 사용 가능한 공간에 가젯 창을 배치하는 알고리즘이 필요합니다. 기본적으로 화면에는 크기가 다른 가제트 창이 모두 다른 위치에 포함됩니다. 고정 된 크기의 다른 가젯을 화면에 추가 할 때 가젯을 배치 할 수있는 곳, 즉 가제트 사이의 빈 공간에 운동 할 방법이 필요합니다. 알고리즘이 공간을 충분히 찾을 수 없다면 가제트는 기존 가제트의 맨 아래에 배치됩니다.창 위치 지정 알고리즘

나는 2 차원 어레이를 만드는 것에 대해 생각해 봤지만 모든 가제트와 공간을 차지하는 화면을 나타냅니다.하지만이 방법을 사용하는 것이 더 효율적이라고 생각합니다. 완전히 주변 기기에서 고정 마진 가젯 창을 맞는 첫 번째 사용 가능한 빈 공간을 찾아 아래로/오른쪽 상단 왼쪽에서 이동

  1. 을 다음과 같이

    요구 사항은.

  2. 빈 공간이 없으면 다른 모든 가젯의 왼쪽 하단에 가젯을 배치하십시오.

감사합니다.

답변

2

새 가젯의 장소를 찾았다 고 가정합니다.

  1. 화면 가장자리 나 다른 장치의 오른쪽 가장자리에 닿을 때까지 왼쪽으로 이동하십시오.
  2. 화면 가장자리 또는 다른 장치의 하단 가장자리에 닿을 때까지 위로 움직입니다.
  3. 의미

, 당신은 단지 세트 {0, g1.right, g2.right, .., gn.right} 및 세트 {0, g1.bottom, g2.bottom, .., gn.bottom}에서 y의 모든 조합에서 x의 모든 조합을 시도 할 수 있습니다.

매우 간단하고 O(n^3) 복잡함을 제공합니다. (n^2 위와 다른 n 위치를 사용할 수 있는지 확인)

+0

질문을 업데이트했습니다. 그래서 문제를 명확하게 설명하지 않았기 때문에 답을 주셔서 감사합니다. –