python 实现 四叉树(二维平面进行管理的)

本文详细介绍了一种四叉树数据结构的实现过程,通过递归方式创建节点,每个节点根据父节点的边界划分出四个子节点,形成多层次的空间划分结构。
# -*- coding: utf-8 -*-
'''

@author: zou_albert
'''
import pdb
class Node():    #  普通节点  反复调用
    def __init__(self, parent ,options, pos_num):  ## pos_num  代表子节点的那个方位的数字
        self.depth = parent.depth + 1
        # if (self.depth >= options.tree_deep - 1):
        #
        #     print "ERROR!!!! Maximum depth exceeded"
        #     exit()

        # pdb.set_trace()
        self.parent_id = 0
        self.is_leaf = 0   #  是否是叶节点呢  暂时可能不用
        self.is_root = 0

        self.parent = parent    # 父母节点

        # if 1 > 0:
        #     print "zoujunboq"
        deltax = (parent.xmax - parent.xmin) / 2
        deltay = (parent.ymax - parent.ymin) / 2
        # if(self.depth == options.tree_deep - 1):   根据这个判断没有叶节点的  应该不用的

        ## pos_num = 0 up_left , 1 up_right,  2  down_left,  3  down_left,
        if(pos_num == 0):  #up_left

            self.xmin = parent.xmin         # 节点覆盖区域的正方形的边界的数值
            self.ymin = parent.ymax - deltay
            self
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值