四叉树写着玩

Posted 汀洲杜若

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四叉树写着玩相关的知识,希望对你有一定的参考价值。

四叉树。闲着没事,写一个玩玩。

在看碰撞检测的时候看到了四叉树。闲着没事,写一个玩玩呗。

除了都含有一个矩形区域外,叶子节点能存几个粒子,而分支结点包含四个子节点,分别代表四个小矩形。结构还是很清晰的: struct QUADRECT boundary; BOOL isLeaf; unionPOINT points[4]; LPQUAD children[4];;  。程序的任务就是:新建一个窗口,在客户区内画个边界,然后往这个矩形里插入新点,每个区域在适当的时候递归划分为4个小矩形,最终使每个矩形里最多只包含4个点。

插入新点P到矩形R内时这样做:

PROC AddNewPoint(P,R)://将点P放到矩形R里
    if R.isLeaf==FALSE 
        if P位于左上:AddNewPoint(P,R.children[0]),结束
        if P位于右上:AddNewPoint(P,R.children[1]),结束
        if P位于左下:AddNewPoint(P,R.children[2]),结束
        if P位于右下:AddNewPoint(P,R.children[3])
        结束 
    找[K]:R.points[K]=NOPOINT //NOPOINT是空标志
    if K∈[0..3] then R.points[K]←P, 结束
    TEMP ← R.points[0..3] // 暂存
    (左上,右上,左下,右下) ← 根据R划分出四个子矩形
    R.children[0..3] ← (左上,右上,左下,右下)
    R.isLeaf ← FALSE
    for E in TEMP:
        AddNewPoint(E,R) //安排这些点到子矩形中
    AddNewPoint(P,R) //加入新点
END

验证了一下,效果还行吧。

可恶!死去的计算机图形学知识又开始袭击我!

幸好本人数学不太行,我全部防出去了啊~~

php l练习(写着玩)

  • 需求:假设今天24号,今天发表的评论显示几小时前发布,23号发布的显示 昨天几点发布的,再往前的就直接显示年月日。
    技术图片
    date_default_timezone_set(‘PRC‘);
    // $create_time = 1561377423;
    $create_time = 1561219392;
    // $create_time = 1561132890;
    //最又那种形式: 
    //获取凌晨时间戳
    $start = date(‘Y-m-d‘);
    $start_time = strtotime($start);
    //前一天凌晨时间戳
    $last_start_time = strtotime(date(‘Y-m-d‘, strtotime(‘-1 day‘)));
    //数据库中发表评论的时间和凌晨时间对比
    if($create_time < $start_time && $create_time > $last_start_time)
        //说明不是在今天发表的评论
        $lastOneDay = date(‘H:i:s‘,$create_time);
        echo ‘发表于--昨天‘.$lastOneDay;
    elseif($create_time >= $start_time)
        $time_diff = time() - $create_time;
        $time_diff = round($time_diff / 3600);
        echo ‘publish before‘.$time_diff,‘hours‘;
    else
        echo ‘publish ‘.date(‘Y-m-d H:i:s‘,$create_time);
    
    计算时间差

     

以上是关于四叉树写着玩的主要内容,如果未能解决你的问题,请参考以下文章

java会话管理之Cookie基础(写着玩)

Leetcode 558.四叉树交集

何时使用二进制空间分区、四叉树、八叉树?

阿里云抢月饼代码实验,自己写着玩的

Mark四叉树与八叉树

四叉树空间索引原理及其实现