【发布时间】:2012-07-16 12:55:32
【问题描述】:
在过去的几天里,我一直在搞乱八叉树和四叉树。我可以构建它们、迭代它们并吐出我需要的信息。我也知道它们在碰撞检测中非常有用,您可以将屏幕细分为更小的部分,以便能够检测屏幕上特定部分的移动,而不是一直遍历整个屏幕。但是,我无法理解如何使用八叉树或四叉树来生成立方体类型的世界。
以下是我一直在思考的一些想法:
1)您使用四边形/八角树细分一个集合立方体(10x10x10),并细分它直到至少有一个叶子是均匀的;然后删除所有其他不均匀的叶子,为您提供不同大小的立方体。
2) 你在空间 (x,y,z) 中细分一个点,直到你得到一个立方体,它至少有一个大小相同的叶子,或者达到节点的深度,并使用所有这些位置(x,y,z) 作为不同类型块的位置。
谁能解释在构建这样一个 3D 环境时使用八叉树或四叉树背后的逻辑?它是基于 x、y、z 还是基于恒定的立方体测量?我非常不确定如何进行。
【问题讨论】:
-
八叉树的大小和深度与叶子节点的大小差不多,它们是可逆的。一个大小为 (x, y, z) 的八叉树有 10 个分割,其叶大小为 (x, y, z)/2^10。