*ALWAYS UNDER CONSTRUCTION*

box packing


@doi
직사각형 공간에 박스를 욱여넣기

@doi
https://tibyte.kr/239[↗]

관련글상자 채우기 (2D bin packing problem) - (1) Shelf 알고리즘상자 채우기 (2D bin packing problem) - (2) Maxrects 알고리즘(1) 상자 채우기 (2D bin packing problem) - (3) Maxrects 알고리즘(2) 상자 채우기 문제 (bin packing problem)는 최소한의 공간에 최대한의 아이템을 채워넣는 문제로 NP-hard분류에 속한다. 이 문제를 적용할 수 있는 것은 1차원(linear)에서는 메모리(segmentation) 관리, 2차원에서는 그래픽 리소스 최적화, 3차원에서는 화물 적재 등 주변에서 쉽게 찾아볼 수 있다. 게임 텍스쳐들을 모아 놓는 스프라이트 시트(sprite sheet)제작 툴에 활용하기 위해 이..

@doi
https://tibyte.kr/240[↗]

이전 글상자 채우기 (2D bin packing problem) - (1) Shelf 알고리즘에서 이어지는 포스트입니다. Maxrects(Maximal Rectangle)알고리즘목차1. 원리2. First Fit 3. Best Fit4. Maxrects-CP 이전 글에서의 문제점을 해결하기 위해서는 남은 공간의 정보를 저장해 두어야 한다.처음 공간에 아이템이 하나 배치됐을 때 아래와 같은 3개의 영역이 생긴다.그림1 그런데 위와 같이 세 부분으로 나누면 단편화(fragmentation)가 심해져서 크기가 큰 아이템을 추가로 넣을 수 없다.따라서 두 부분으로 나누어야 하는데 아래 그림처럼 2가지 선택지가 있다. 이렇게 나누는 방법을 Guillotine Algorithm이라고 한다. 그림2 하지만 여전히 단..

@doi
https://tibyte.kr/244[↗]

상자 채우기 (2D bin packing) - (2) Maxrects 알고리즘①에서 이어지는 포스트입니다. 지난 글에서의 순서를 다시 보면 아래와 같다. 1. 넣을 아이템을 불러온다2. 남은 공간들 중에서 아이템을 넣을 수 있는 공간을 선택한다. (다양햔 휴리스틱 존재)3. 해당 공간에 아이템을 넣는다.4. 넣은 아이템과 겹치는 모든 공간들을 검사한다5. 넣은 아이템과 겹치는 공간을 분할한다6. 유효하지 않은 공간을 제거한다. (다른 공간 안에 포함된 공간이나, 높이나 너비 값이 음수인 공간.) 7. 넣을 아이템이 남아있으면 (1)로 돌아간다. 3,4,5,6 번 과정을 그림으로 그려봤을 때 아래 그림은 item1이 넣어져 있는 상태에서 남은 공간은 A와 B로 나누어져 있고,item2를 넣는 상황이다.[그..

@innollia

@doi
https://meliplug.info/things/boxpack[↗]

@doi
빈공간 계산해서 맞는 상자 생성해서 가득 채우기