function div_box( fig x ) {
if (x が 1つの長方形で表せる) return 1;
a = 1 + div_box( minus_bottom_box(x) );
b = 1 + div_box( minus_large_box(x) );
if (a <= b) {
return a;
} else {
return b;
}
}
function minus_bottom_box( fig x ) {
x の最も最下部の辺の中で最も左側の頂点を含む
連続する辺を底辺とする最大の長方形を y とする。
return (x から 長方形 y を除いた形状);
}
function minus_large_box( fix x ) {
x をすべて含む最小の長方形を y とする。
return ( 長方形y から x を除いた形状);
}