计算 3D 边界框的尺寸

Calculation of dimensions for a 3D bounding Box

本文关键字:3D 边界 计算      更新时间:2023-10-16

编辑:我正在尝试使用三个向量来计算 3D 边界框的尺寸,这些向量包含代表我的框的 3 个坐标的元素,即 Cluster_x、Cluster_y 和Cluster_z。我用于查找中心值的算法如下。我不知道我哪里出错了。

            tFloat32 x_max = *std::max_element(Cluster_x.begin(), Cluster_x.end());
            tFloat32 x_min = *std::min_element(Cluster_x.begin(), Cluster_x.end());
            tFloat32 y_max = *std::max_element(Cluster_y.begin(), Cluster_y.end());
            tFloat32 y_min = *std::min_element(Cluster_y.begin(), Cluster_y.end());
            tFloat32 z_max = *std::max_element(Cluster_z.begin(), Cluster_z.end());
            tFloat32 z_min = *std::min_element(Cluster_z.begin(), Cluster_z.end());

                //Center//
            tFloat32 c_x = (x_max - x_min) / 2;
            tFloat32 c_y = (y_max - y_min) / 2;
            tFloat32 c_z = (z_max - z_min) / 2;
            cetuc::BoundingBox NewBox(cetuc::Point3D(c_x,c_y,c_z), cetuc::Point3D(8, 8, 10), cetuc::Point3D(0, 0, 0));

要使std::max_element工作,您必须为元素类型提供operator<重载tFloat32或谓词进行比较。在您的情况下,最好使用 std::minmax_element