首页 > 其他分享 >基础知识八叉树构建

基础知识八叉树构建

时间:2023-02-09 10:01:22浏览次数:41  
标签:box 小于 子树 return 加入 八叉树 基础知识 构建 包围


都是伪代码哈

tree
{
boundingbox
leftfowardup//children1
...7 chilren
maxDeep
}

一个深度限制,一个包围盒,8个孩子

那么需要构建,那就插入物体 物体包围盒是box

node_level_0检查,是否包围盒大于box,0层级特殊处理,0的包围盒小于box就直接加入0级,return了。

继续正常情况,物体包围盒小于0级包围盒。

那么就Try一下八个子树,那么分情况。

1 如果子树包围盒小于box,那么直接加入当前node,且不创建子树 return。

2 如果子树包围盒大于box,那么如果这个box和一个以上子树相交,则加入当前node,不创建子树,return,

如果只和一个子树相交或者被包含,该子树才被创建,进入下一层,直到情况1或者情况3触发,才被加入某个子树。

3 如果到最深层且包围盒小于这个子树包围盒,那么直接加入该子树,但如果包围盒大了 就是情况1,与多个相交就是情况2。

标签:box,小于,子树,return,加入,八叉树,基础知识,构建,包围
From: https://blog.51cto.com/u_11889343/6045861

相关文章

  • 梳理一下容器和 Docker 的基础知识
    目录0.引言1.Docker架构2.什么是容器2.1容器:被隔离的进程2.2与虚拟机的区别2.3容器隔离的实现2.4镜像2.5远端镜像仓库0.引言我们还是从最流行的也是最为大众熟......
  • 数组基础知识
    顺序表SeqList.h#define_CRT_SECURE_NO_WARNINGS#ifndef__SEQLIST_H__#define__SEQLIST_H__#include<stdio.h>#include<malloc.h>#include<assert.h>#include<s......
  • 前端构建工具与应用程序测试
    1、前端构建工具什么是前端构建?什么是构建工具?自动构建工具NpmScripts(推荐)NpmScripts(NPM脚本)是一个任务执行者。NPM是安装Node时附带的一个包管理器,NpmScript则是NPM......
  • Java基础知识点(idea的项目结构、制表符、变量以及其使用
    1.idea的项目结构;project(项目)、module(模块)、package(包)、class(类)​2.制表符;\t;再打印的时候,把前面字符串的长度补齐到8,或者8的整数倍。最少补一个空格,最多补8个空格......
  • 进程基础知识
    程序和进程程序:(文件)进程:(资源)并行与并发并行:同一时刻,有多条指令在多个处理器上同时执行并发:在同一时刻只能有一条指令执行,但多个进程指令被快速轮换,使得宏观上具有......
  • 构建亿级别的消息推送基础模型
    问题场景:当用户量增大的时候,系统内的消息推送(比如系统内短信推送,微信,钉钉,极光个推推送)将是我们常见业务场景。当系统中的用户量逐渐增大时候,群发用户消息的推送也将成为......
  • Linux基础第一章:基础知识与基础命令3
    一、基础命令1、mv命令①mv命令在不改变文件路径时是为改名,如下图。  ②mv命令在改变文件路径的情况下是剪切或移动,如下图。  2、rename命令mv命令在更改文......
  • maven概念、maven项目的一键构建
    maven概念一个对Maven比较正式的定义是这么说的:Maven是一个项目管理工具它包含了一个项目对象模型(POM:OrihectObjectModel)一组标准集合一个项目生命周期(ProjectLifec......
  • spring基础知识
    1、什么是控制反转(IOC)?   IOC:根据javase,我们直接在对象内部通过new进行创建对象,是程序主动去创建对象。而ioc是有个专门容器来创建这些对象。是ioc容器控制了对象,即......
  • Unity3D入门基础知识
    一、基础概念1、物体与空物体物体(GameObject),其实是一个节点或容器。一般所谓的“物体”,即有形状的东西,对应的Mesh,网格信息代表了物体(形状)。空物体(EmptyObject),即空对象......