gpt4 book ai didi

algorithm - 检查一个点是否在立方体内部(使用 matlab)

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:09:03 27 4
gpt4 key购买 nike

让我用一个问题来澄清我的问题:

假设我有一个大立方体 = 100*100*100,大立方体内部有小立方体构成大立方体,它们的大小为 = 10*10*10。 (我在大立方体中有 1000 个小立方体)现在,我需要检查我的点 (2,2,2) 存在于哪个立方体中。答案肯定是这个问题的第一个立方体。然后在找到立方体后,我将保存每个立方体包含的点数。

我的尝试:一开始我想如果我的点和8个角比较就足够了。我虽然我点的坐标必须大于立方体的 4 个角,并且小于立方体的其余 4 个角,然后我将迭代地增加角点的坐标以检查其他立方体。然而,现在我知道我错了。

什么是最适合这个问题的算法?

问候,艾玛迪斯

注意:我使用的是 MATLAB,因此如果有任何用于此目的的内置函数,我也可以使用它们。

最佳答案

假设您有一个 N*N*N 的立方体。然后创建尺寸为 n*n*n 的小立方体。然后所有的立方体都可以用一个 3D 数组表示,使得其边缘最接近原点 (a*n, b*n, c*n) 的立方体在这个 3d 数组中由索引 (a, b, c) 表示。存储在该索引处的值是该多维数据集内的点数。这是伪代码

//Pseudo code
int [N/n][N/n][N/n] arrayWithCountOfPointsInsideCubes;

void function countPointsForCubes(double point_x, point_y, point_z)
{
arrayWithCountOfPointsInsideCubes[pint_x/n][point_y/n][point_z/n]++;
}

关于algorithm - 检查一个点是否在立方体内部(使用 matlab),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13576129/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com