Python 二叉树算法解决二维装箱问题 (2d bin-packing problem)

这篇具有很好参考价值的文章主要介绍了Python 二叉树算法解决二维装箱问题 (2d bin-packing problem)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

二维装箱问题应用领域比较多,游戏开发中主要应用于贴图合并。

最近在调研图集打包工具的算法实现,看到一种实现方式是通过二叉树算法,比较朴素且有效,则立刻写用例简单测试验证下。

测试结果:(打包后的图用随机纯色色块代替)
二维装箱问题,unity,数据结构与算法,算法,python,unity

测试代码如下:文章来源地址https://www.toymoban.com/news/detail-591078.html

from Packer import Packer
from PIL import Image
import cv2
import os
import random

Canvas_Width = 1024
Canvas_Height = 1024
CanvasPixelColor = [255, 255, 255]
ImgPath = "imgLib"

# 获取path下的所有图片对象
def getImgList(path):
    imagelist = []
    for parent, dirnames, filenames in os.walk(path):
        for filename in filenames:
            if filename.lower().endswith(('.png')):
                img = cv2.imread(os.path.join(parent, filename), cv2.IMREAD_UNCHANGED)
                imagelist.append(img)
                print(filename)
        return imagelist

# 新建一张图
def newImg(width, height, r, g, b):
    img = Image.new('RGB', (width, height))
    for i in range(0, width):
        for j in range(0, height):
            img.putpixel((i, j), (r,

到了这里,关于Python 二叉树算法解决二维装箱问题 (2d bin-packing problem)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于禁忌搜索算法的三维装箱问题

    装箱问题是复杂的离散组合最优化问题。所谓组合优化,是指在离散的、有限的数学结构上,寻找一个满足给定条件,并使其目标函数值达到最大或最小的解。经典的装箱问题要求把一定数量的物品放入容量相同的一些箱子中,使得每个箱子中的物品大小之和不超过箱子容量并使所

    2024年02月08日
    浏览(23)
  • 一套模板搞定二叉树算法题--二叉树算法讲解003

    题目和题意: 图示: 题解: 题目和题意: 题解: 题目和题意: 题解: 题目和题意: 题解1: 写法1: 写法2: 题解2: 题目和题意: 题解:该题与叶子节点强相关,和自顶向下或自底向上并不强相关。 自底向上的图示: 题目和题意: 题解: 简洁写法: 思路易理解,代码

    2024年02月19日
    浏览(25)
  • 一套模板搞定二叉树算法题--二叉树算法讲解004

    模拟忘记知识点和技巧时,遇到一个新的二叉树习题,该如何处理思考和写代码解题? 题目和题意: 题解1 成员变量self.ans: 题解2 递归回传: 该题是个经典二叉树题目 题目和题意: 题解: 分析,所有路径,每一个叶子节点都需要到达。到达之后,需要退出回到上一层的叶

    2024年02月19日
    浏览(23)
  • 一套模板搞定二叉树算法题--二叉树算法讲解002

    递归: 每个节点 都要恰好被访问一次, 本质上是二叉树的线性化 。 一个树形的结构,线性化为一个数组之类的\\\"串\\\"的结构。 示例二叉树原型图: 前序遍历执行顺序: 根节点--对左子树做前序遍历--对右子树做前序遍历 总的顺序:根节点--左子树--右子树 左子树中:根-左

    2024年02月02日
    浏览(24)
  • 分治法解二维的最近对问题,算法分析与代码实现,蛮力法与分治法解决二维的最近对问题的区别

    🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨,经典算法的解析✨都在这儿,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 -  数据结构与算法_勾栏听曲_0 🍻欢迎大家  🏹  点赞👍  评论📨  收藏⭐️ 📌个人主

    2024年02月04日
    浏览(29)
  • 算法刷题Day 15 二叉树的层序遍历+翻转二叉树+对称二叉树

    层序遍历二叉树需要借助到队列 递归方法 迭代方法 就是简单的用上前序遍历迭代方法实现,不用想的太复杂 递归方法 迭代方法 这里使用了队列来存放两个要比较的结点。也可以使用栈,方法是类似的。

    2024年02月12日
    浏览(31)
  • 二叉树 | 二叉树的前序遍历问题

    二叉树的前序遍历问题描述 提供二叉树的根节点 root ,返回它节点值的 前序   遍历。 二叉树的前序遍历是一种深度优先遍历(DFS)的方式,其遍历顺序为:先访问根节点,然后递归地对左子树进行前序遍历,最后递归地对右子树进行前序遍历。 二叉树的定义 在Java中,二

    2024年02月01日
    浏览(34)
  • LeetCode算法二叉树—222. 完全二叉树的节点个数

    目录 222. 完全二叉树的节点个数 - 力扣(LeetCode) 代码: 运行结果:  给你一棵  完全二叉树  的根节点  root  ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集

    2024年02月07日
    浏览(36)
  • 算法训练day15Leetcode102二叉树层序遍历226翻转二叉树101对称二叉树

    https://www.bilibili.com/video/BV1ue4y1Y7Mf/?vd_source=8272bd48fee17396a4a1746c256ab0ae 层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。这种遍历的方式和我们之前讲过的都不太一样。 需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先

    2024年01月18日
    浏览(40)
  • 【数据结构】树与二叉树(十三):递归复制二叉树(算法CopyTree)

      二叉树是一种常见的树状数据结构,它由结点的有限集合组成。一个二叉树要么是 空集 ,被称为 空二叉树 ,要么由一个根结点和两棵不相交的子树组成,分别称为 左子树 和 右子树 。每个结点最多有两个子结点,分别称为左子结点和右子结点。 引理5.1:二叉树中层数

    2024年02月01日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包