아래와 같이 주어진 도면에 Label을 도면 상의 다른 객체들과 겹쳐지지 않게 배치하고자 할때 White Space 검색이 필요합니다. 먼저 도면의 모든 객체들을 포함하는 Bounding Box를 구합니다. 이 Bounding Box 안에 Label을 배치한다고 가정하겠습니다. 도면 상의 객체의 Bounding Box를 구해 도면의 Bounding Box안에 배치시킵니다. 그리고 배치하려는 Label의 Bounding Box를 구한 다음 Label을 배치할 위치를 찾을 Search Bounding Box를 설정합니다. 일반적으로 Label을 가지는 객체의 Bounding Box의 비율로 Search Bounding Box를 구합니다.(물론 도면 전체 Bounding Box가 될 수도 있습니다.) 라인 넘버의 경우 Search Bounding Box를 파이프 길이 방향으로 길게 생성하면 될것 같습니다. Search Bounding Box안에서 Label을 X,Y로 조금씩 이동(δt)하면서 Score를 구합니다. Score = distance * distance factor + overlap area ∗ overlap area factor distance = 밸브의 원점과 Label 위치와의 거리 distance factor = distance가 score에 미치는 영향 overlap area = label의 bounding box가 도면 상의 객체와 겹치는 영역 overlap area factor = overlap area가 score에 미치는 영향 $\delta t$의 크기가 작을 수록 Label을 배치할 위치의 정밀도가 높아지지만 위치를 찾는데 걸리는 시간을 길어집니다. overlap area는 사각형들이(Label과 여러 객체들이 동시에 겹쳐질수 있음) 겹쳐지는 영역을 구하면 됩니다. Label을 회전할 필요가 있으면 회전한 Bounding Box를 구하여 Search Bounding ...