应用程序如何计算出3d对象的边界(只是一个盒子)?
这是一个例子
我需要此信息进行碰撞检测。
答案 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);
}
}