zoukankan      html  css  js  c++  java
  • Actionscript3版四叉树的插入与查询

    代码

    public function query(queryArea:Rectangle):Array
    {
        var result:Array 
    = [];

        
    for each (var item:IQuadNodeItem in contents)
        {
            
    if (queryArea.intersects(item.getRectangle()))
                result.push(item);
        }
        
    for each (var node:QuadNode in nodes)
        {
            
    if (node.isEmpty)
                
    continue;
            
    if (node.bounds.containsRect(queryArea))
            {
                result 
    = result.concat(node.query(queryArea));
                
    break;
            }
            
    if (queryArea.containsRect(node.bounds))
            {
                result 
    = result.concat(node.subTreeContents);
                
    continue;
            }
            
    if (node.bounds.intersects(queryArea))
                result 
    = result.concat(node.query(queryArea));
        }
        
    return result;
    }

    public function insert(item:IQuadNodeItem):void
    {
        
    if (!bounds.containsRect(item.getRectangle()))
            
    return;
        
    if (nodes.length == 0)
            createSubNodes();
        
    for each (var node:QuadNode in nodes)
        {
            
    if (node.bounds.containsRect(item.getRectangle()))
            {
                node.insert(item);
                
    return;
            }
        }
        
    this.contents.push(item);
    }
  • 相关阅读:
    第三题 bfw在睡觉
    第二题 bfw和zhk的故事
    第一题 奶牛散步
    AC加油站7月比赛总结
    暑期机房联赛
    题解 P5663 【加工零件【民间数据】】
    题解 P1052 【过河】
    并发编程之进程
    网络编程socketserver
    网络编程之黏包
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/1624781.html
Copyright © 2011-2022 走看看