获取3d对象边界

时间:2015-06-27 12:41:58

标签: opengl 3d game-physics

应用程序如何计算出3d对象的边界(只是一个盒子)?

这是一个例子 example

我需要此信息进行碰撞检测。

1 个答案:

答案 0 :(得分:1)

这是计算3D对象的最小值和最大值(边界框)的方法。

void BBox(GLpoint *p, int n_vert, GLpoint& p_max, GLpoint& p_min)
{
    p_min.x = p[0].x;
    p_min.y = p[0].y;
    p_min.z = p[0].z;

    p_max.x = p[0].x;
    p_max.y = p[0].y;
    p_max.z = p[0].z;

    for (int i=1; i<n_vert; i++)
    {
        p_min.x = MIN(p_min.x, p[i].x);
        p_min.y = MIN(p_min.y, p[i].y);
        p_min.z = MIN(p_min.z, p[i].z);

        p_max.x = MAX(p_max.x, p[i].x);
        p_max.y = MAX(p_max.y, p[i].y);
        p_max.z = MAX(p_max.z, p[i].z);
    }
}