최소 사각형으로 간단한 오목 다각형을 덮으려고합니다. 내 직사각형은 길이가 가능하지만 최대 너비를 가지며 다각형은 예각을 갖지 않습니다.
오목 다각형을 삼각형으로 분해하여 각 삼각형을 최소한으로 묶은 최소 겹치는 사각형 세트를 생성 한 다음 해당 사각형을 더 큰 사각형으로 병합하려고합니다. 그러나 이것이 다각형 가장자리의 작은 노치에는 효과가 없다고 생각합니다. 해당 노치의 반사 정점에 의해 생성 된 삼각형은 잘못된 사각형을 생성합니다. 노치에 걸쳐 있거나 무시할 사각형을 찾고 있습니다.
나는 계산 기하학에 대해 전혀 모른다. 그래서 질문을 시작하는 방법을 정말로 확신하지 못한다.
비슷한 다른 게시물을 찾았지만 필요한 것은 아닙니다.
- 다각형을 최소량의 사각형과 삼각형으로 나눕니다.
- 최소 제곱으로 임의의 다각형 덮기
- 최대 점 수를 포괄하는 직사각형 찾기
- 일련의 직사각형을 포함하는 가장 작은 직사각형을 찾는 알고리즘
일부 예 : 검은 색이 입력입니다. 허용되는 출력은 빨간색입니다.
또 다른 예 : 두 번째 출력이 선호됩니다. 그러나 출력을 생성하고 선호도를 결정하기 위해 다른 요소를 사용하는 것이 아마도이 알고리즘의 책임이 아닌 필요합니다.
커브를 모방 한 다각형은 매우 드 rare니다. 이 시나리오에서는 사각형의 많은 영역이 낭비됩니다. 그러나 각 직사각형이 최대 너비 제한 조건을 따르기 때문에 이는 허용됩니다.
또한이 기사가 필요한 것에 가깝다는 것을 알았습니다.
- Paul Iacob, Daniela Marinescu 및 Cristina Luca의 직사각형 조각 으로 덮기
아마도 더 좋은 질문은 "오목 다각형의 직사각형과 같은 부분을 어떻게 식별 할 수 있습니까?"
다음은 원하는 구현을 보여주는 이미지입니다.
녹색은 실제 재료 사용량입니다. 빨간색 사각형은 레이아웃입니다. 파란색은 전체 다각형의 MBR입니다. 작은 MBR을 가져 와서 채워야한다고 생각하고 있습니다. 다각형의 중앙으로 끝나는 왼쪽 상단 모서리의 2-3 녹색 사각형은 비쌉니다. 그것이 내가 최소화하고 싶은 것입니다. 녹색 사각형에는 최소 및 최대 너비와 높이가 있지만 영역을 덮는 데 필요한 수의 행과 열을 사용할 수 있습니다. 다시 입력에 걸쳐 있지 않은 사각형의 수를 최소화해야합니다. 또한 매우 비싼 작은 장소에 맞게 녹색 사각형의 모양을 수정할 수도 있습니다. 다시 말해, 가능한 한 많은 사각형을 가능한 많이 확장하는 것이 이상적입니다.