求C# 矩形排版下料算法实例

zhpmy1 2018-12-15 05:51:12
用C# 开发一个示例,画一个指定大小的矩形,在此矩形范围内将提供的其他不同大小的矩形进行排版,生成排版图,矩形之间和边距之间分别可以设定间距。此功能为排版优化。
...全文
2995 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
dovei 2021-02-05
  • 打赏
  • 举报
回复
引用 10 楼 qq_30270773 的回复:
这是一个二维装箱问题,使用skyline方法+遗传算法效果拔群。如果有需要可以私聊。30以下矩形全排很快,197个的算子能排到97%以上。
私信
dovei 2021-02-05
  • 打赏
  • 举报
回复
楼主搞定了没有?
weixin_42214268 2020-01-06
  • 打赏
  • 举报
回复
可以分享下源码?
XBodhi. 2019-09-19
  • 打赏
  • 举报
回复
堆栈堆叠 堆栈堆叠 堆栈堆叠
code_long 2019-09-18
  • 打赏
  • 举报
回复
最简单的方式实现就是二叉,摆放金字塔
code_long 2019-09-18
  • 打赏
  • 举报
回复
二维装箱,贪婪
u010857076 2019-09-16
  • 打赏
  • 举报
回复
引用 3 楼 qq_30270773 的回复:
用一定的算法可以达到比较好的效果。 例如25个不同的矩形满排效果。 97个不同矩形排列面积占用率在97%以上耗时大约2分钟的效果。
楼上可以分享下相关算法和软件吗?
win7cc 2019-03-29
  • 打赏
  • 举报
回复
没钱,你要算法? 就看懂,也要花时间。
  • 打赏
  • 举报
回复
用一定的算法可以达到比较好的效果。 例如25个不同的矩形满排效果。 97个不同矩形排列面积占用率在97%以上耗时大约2分钟的效果。
  • 打赏
  • 举报
回复
一般算例是不可能枚举的,这个领域算例给定了25-197个不同尺寸的矩形,这个枚举已经失效了。
jx315425246 2019-03-29
  • 打赏
  • 举报
回复
二维的排列组合问题,只能用穷举法对比,还要考虑多少原料,半成品最佳组合,比如5个原料,出三种半成品,并不是每个原料上排列所有3种半成品最佳。先作数学模型,找最佳算法
  • 打赏
  • 举报
回复
这是一个二维装箱问题,使用skyline方法+遗传算法效果拔群。如果有需要可以私聊。30以下矩形全排很快,197个的算子能排到97%以上。
秋的红果实 2019-03-28
  • 打赏
  • 举报
回复
将里面小矩形的长、宽放到一个结构体的l,w,假设有n个小矩形,那么就有n个l和n个w,然后对这些l和w进行全组合,并求出每种组合的和,并对这些和排序,和最接近外边大矩形的长、宽的就是你要的最优解 需要控制好一个小矩形自己的长、宽不能参与组合算法 规模小的话,差不多能实现
xuzuning 2018-12-16
  • 打赏
  • 举报
回复
那你到 猪八戒 去发标就是了,何苦在这里无望的等待
zhpmy1 2018-12-16
  • 打赏
  • 举报
回复
谢谢大家,我的排版要求不高,能稍微优化排出来就行,是有偿的,有这方面经验的可以联系我
xuzuning 2018-12-16
  • 打赏
  • 举报
回复
间边距只是增大了目标矩形的尺寸,并不影响排版计算,无需考虑
排版时应尽量避免断头折线的出现(不利于后期切割)
目标矩形以左上角聚集(可旋转一次),使控制矩形面积最小或一边等于材料的一边
用二叉树保存结果
  • 打赏
  • 举报
回复
空闲矩形是可以有重复相交部分的,没有关系。当放好任何一个目标矩形之后,从空闲矩形列表中删除掉所有与之相交的空闲矩形,从空闲矩形(去掉被占用的左上角部分)产生2个新的空闲矩形重新放入空闲矩形列表。你自己画图来说明一下这个规则就明白了。
  • 打赏
  • 举报
回复
为矩形设定边距可以通过把矩形内边距算作矩形自身参数的方式来简化。 这类程序很多。例如在一个 DIV 里边自动排放几百个照片,都是这类算法。简单来说就是把随时分割出来的空余空间动态产生一个个矩形(空闲矩形),然后对于每一个需要放入的矩形,遍历查找一个宽度最接近、或者高度最接近的空余矩形嵌入其中。
一转程序员 2018-12-16
  • 打赏
  • 举报
回复
这个还是直接买吧,算法太复杂,估计没人会免费分享出来
zhpmy1 2018-12-16
  • 打赏
  • 举报
回复
谢谢大家,只是想这里人才多,看有没有大神看到

111,076

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧