2011-12-26 7 views
3

저는 2d-bin-packing 알고리즘을 캔버스에 구현하고 있습니다. 내 임무는 캔버스에있을 수있는 최적의 사각형을 배치하는 것입니다. 그것을 수행하는 방법2-bin-packing x, y 위치에 직사각형을 배치하는 알고리즘?

다음 쇼 : http://incise.org/2d-bin-packing-with-javascript-and-canvas.html

는하지만, 그것은 원점에서 시작한다. 사각형을 넣을 장소와 그 옆에있는 사각형을 알고리즘에 알려주고 싶습니다.

코드에서 변경해야 할 내용은 무엇입니까?

다른 알고리즘을 사용할 수 있습니까?

+0

어떤 언어로 제공됩니까? 4 개의 언어 태그를 넣었습니다. – Alejandro

답변

11

나는 링크 된 것보다 더 좋은 알고리즘 (속도가 아니라 압축이라는 측면에서)이 MaxRects라고합니다.

This은 C로 작성했습니다. 빠르지는 않지만 컴팩트하게 포장하는 데 매우 효과적이었습니다.

This은 시간과 압축성 측면에서 모든 종류의 알고리즘을 논의하고 비교하는 pdf입니다.

편집 :

난 MaxRects enter image description here로 압축 함께 화상의 일례를 던져.

+0

와우! 굉장한 참조! – templatetypedef

+0

잘 꾸며진 사진처럼 보입니다. –

+0

에단 감사합니다! 문제는이 알고리즘이 xy를 가지고 xy 위치에 첫 번째 사각형을 놓는 것부터 시작할 수 있고 그렇지 않다면 알고리즘이 그것을 다른 위치에 놓을 수 있는지입니다. – EliKd

관련 문제