【发布时间】:2018-06-17 17:36:59
【问题描述】:
假设我有一个四叉树。 假设我里面有一个移动的物体。
我知道当您添加和删除节点时,四叉树会自动排序,但是当一个节点(比如说他的更新函数)移动到另一个不相关节点的左侧时会发生什么? 或者基本上这个节点传送?
四叉树会发生什么? 我需要重建它吗?
我只是不明白,当你刚刚更新节点数据时,四叉树是否会自动进行自我排序,或者我是否需要在更新节点时重建整个树。
【问题讨论】:
-
您所说的“排序”是什么意思,您想到的排序顺序是什么?通常,标准四叉树中的节点从不移动。如果四叉树中的对象(点/矩形/...)移动,它要么留在同一个节点(如果它仍然适合该节点),要么从节点中移除并重新插入另一个节点。
-
这就是我要问的,当一个节点,比如说它代表一个角色在关卡中传送或只是移动时,你需要重建树吗?
-
也许我误解了你所说的“节点”是什么意思。四叉树由节点组成,但这些从不移动,您只能在节点中添加/删除对象或在节点内移动它们。但是,如果您的意思是“节点”是您存储在四叉树中的某种类型的对象,那么当您的“节点”之一移动时,您通常会将其从四叉树中删除并再次添加,但这些“节点”什么都没有与四叉树的节点有关,基本上你会将你的“节点”之一存储在四叉树节点中......