바이트 행렬 (비트 맵과 같은 행렬)을 통해 표시된 Figure 가 있습니다 . 예제 그림 은에 나와 있습니다 Picture 1
.
목표는 주어진 그림 중 가장 좋은 회전 각도를 찾는 것입니다 . Figure가 최상의 각도로 회전하면 X 및 Y 축에 평행하고 Figure 를 나타내는 사각형이 가장 작은 영역을 갖습니다.
그림을 나타내는 사각형은 그림에서 밝은 회색으로 표시됩니다. 에서 Picture 2
, 당신은 그림의 이상적인 회전이 30도 시계 방향에 관한 것입니다 볼 수 있습니다.
이제이 각도를 찾는 방법을 알고 있지만 매우 비효율적입니다. 다음과 같이 진행됩니다.
- 0에서 45 사이의 각도를 반복하십시오.
- 현재 각도의 경우 모든 도형에 대해 새로운 회전 위치를 계산합니다.
- 그림 (최소 및 최대 x, y)을 포함하는 사각형의 경계를 찾아서 지금까지 가장 일치하는 경우 등록하십시오
- 다음 각도
이것은 일종의 무차별 방식이며 작은 숫자에 적합하고 합리적으로 빠르게 작동합니다. 그러나 최대 1 천만 점을 포함하는 그림으로 작업해야하며 알고리즘이 느려집니다.
이 문제에 대한 좋은 알고리즘은 무엇입니까?