计算 3D 边界框的尺寸
Calculation of dimensions for a 3D bounding Box
编辑:我正在尝试使用三个向量来计算 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
相关文章:
- 无法将结构注册为增强几何体3D点
- OpenGL大的3D纹理(>2GB)非常慢
- std::当在256字节边界上写入整数时,流的奇怪行为
- 是什么导致了Unity 3D中的"错误线程异常"?
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- 使用不变量来确定二分搜索中的边界条件
- 跨 DLL 边界访问虚拟方法是否安全/可能?
- CPU 瓶颈;处理具有许多非静态对象的 3D 场景渲染的简单方法
- 在 64 位边界上对齐C++结构数组?
- 如何使用Qt 3D库加载和显示搅拌机.obj源文件场景
- std::数组边界检查如何工作?
- CGAL:如何创建填充边界曲线的曲面网格?
- 如何从 3D 曲面网格中删除自相交三角形?
- CUDA 使用共享内存平铺 3D 卷积实现
- 在 c++ 中是否允许创建具有运行时边界的数组?
- 计算 3D 边界框的尺寸
- 具有所有诺伊曼边界条件的 3D 泊松方程的 FFTW
- 3D 几何:从相机位置、最小和最大视角长度、指向角度和视角查找观看边界
- 如何在单位边界框中规范化3D非彩色网格
- 如何创建 3D 边界框?(直接 3d 11,HLSL)