精选问答
矩形分割(VB编程) 已知一个大矩形,以另一个小矩形去切割,问最多能得到几个小矩形?举例:大矩形尺寸:1200x2400mm小矩形尺寸:700x1000mm在VB编程中或者在数学中有什么公式可以求解,因为小矩形尺寸不是固定的,所以要有一个公式来适应各种尺寸大小的小矩形去分割大矩形,让分割后的材料利用率最高

2019-04-13

矩形分割(VB编程) 已知一个大矩形,以另一个小矩形去切割,问最多能得到几个小矩形?
举例:
大矩形尺寸:1200x2400mm
小矩形尺寸:700x1000mm
在VB编程中或者在数学中有什么公式可以求解,因为小矩形尺寸不是固定的,所以要有一个公式来适应各种尺寸大小的小矩形去分割大矩形,让分割后的材料利用率最高
优质解答
楼主可以考虑用递归的方法一下我写一下伪码.看不懂的地方可以追问(因为我不会vb.所以只能写伪码)
int 分割算法(大矩形 a,小矩形 b)
{
在a的左上角竖着割一块b(不能分割则m1=0)
会余下三块小一点的矩形x,y,z
int m1=分割算法(x,b)+分割算法(y,b)+分割算法(z,b)+1
在a的左上角横着割一块b(不能分割则m2=0)
会余下三块小一点的矩形x,y,z
int m2=分割算法(x,b)+分割算法(y,b)+分割算法(z,b)+1
返回m1与m2的较大值
}
楼主可以考虑用递归的方法一下我写一下伪码.看不懂的地方可以追问(因为我不会vb.所以只能写伪码)
int 分割算法(大矩形 a,小矩形 b)
{
在a的左上角竖着割一块b(不能分割则m1=0)
会余下三块小一点的矩形x,y,z
int m1=分割算法(x,b)+分割算法(y,b)+分割算法(z,b)+1
在a的左上角横着割一块b(不能分割则m2=0)
会余下三块小一点的矩形x,y,z
int m2=分割算法(x,b)+分割算法(y,b)+分割算法(z,b)+1
返回m1与m2的较大值
}
相关问答